包含字符串和整数的拆分列表

2022-02-23 00:00:00 python list string integer

问题描述

myList = [ 4,'a', 'b', 'c', 1 'd', 3]

如何以优雅/pythonic的方式将此列表拆分为两个列表,一个包含字符串,另一个包含整数?

输出:

myStrList = [ 'a', 'b', 'c', 'd' ]

myIntList = [ 4, 1, 3 ]

注:没有实现这样的列表,只是在想如何找到一个优雅的答案(有吗?)来解决这样的问题。


解决方案

正如其他人在评论中提到的那样,您真的应该开始考虑如何才能从一开始就消除包含非同构数据的列表。但是,如果真正不能完成,我会使用defaultdict:

from collections import defaultdict
d = defaultdict(list)
for x in myList:
   d[type(x)].append(x)

print d[int]
print d[str]

相关文章