【发布时间】:2015-12-07 21:37:45
【问题描述】:
我知道如何轻松扁平化列表列表。 例如:
my_list = [['abc'],[1,2,3]]
list(itertools.chain.from_iterable(my_list))
但是如果
my_list = ['abs',[1,2,3]]
list(itertools.chain.from_iterable(my_list))
我得到['a','b','c',1,2,3],而我想要['abc', 1,2,3]
我可以通过为原始列表中的第二个元素运行for loop 来解决这个问题,但这似乎是一种混乱的方式,如果你不知道列表中的哪个元素是一个列表,它是一个字符串。
有没有一种简单的方法来展平同时包含列表和字符串的列表?
【问题讨论】:
-
使用this 回答但检查字符串类型。我会说如何做到这一点,但无论你使用的是 Python 2 还是 Python 3,它都是不同的,你还没有说。
-
好的,然后:
[item for sublist in my_list for item in sublist if not isinstance(sublist, basestring)]
标签: python