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

新手上路,请多包涵
myList = [ 4,'a', 'b', 'c', 1 'd', 3]

如何将这个列表分成两个列表,一个包含字符串,另一个包含 优雅/Pythonic 方式的整数?

输出:

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

myIntList = [ 4, 1, 3 ]

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

原文由 ayyayyekokojambo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 331
2 个回答

正如其他人在评论中提到的那样,您真的应该开始考虑如何首先摆脱包含非同质数据的列表。但是,如果真的 _做不到_,我会使用 defaultdict:

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

print d[int]
print d[str]

原文由 mgilson 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用列表理解:-

 >>> myList = [ 4,'a', 'b', 'c', 1, 'd', 3]
>>> myIntList = [x for x in myList if isinstance(x, int)]
>>> myIntList
[4, 1, 3]
>>> myStrList = [x for x in myList if isinstance(x, str)]
>>> myStrList
['a', 'b', 'c', 'd']

原文由 Rohit Jain 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题