以前也有类似的问题,但是这些问题的解决方案对我的用例不起作用(例如Making a flat list out of list of lists in Python和Flattening a shallow list in Python)。我有一个字符串和列表的列表,其中嵌入的列表也可以包含字符串和列表。我想把它变成一个简单的字符串列表,而不把字符串分成字符列表。
import itertools
list_of_menuitems = ['image10', ['image00', 'image01'], ['image02', ['image03', 'image04']]]
chain = itertools.chain(*list_of_menuitems)
结果列表:
['i', 'm', 'a', 'g', 'e', '1', '0', 'image00', 'image01', 'image02', ['image03', 'image04']]
预期结果:
['image10', 'image00', 'image01', 'image02', 'image03', 'image04']
做这个最好的方法是什么?
以下适用于字符串(并且很容易适应其他类型):
经常重复的^{} 函数可以通过简单的修改应用于这种情况。
basestring
将确保str
和unicode
对象不被拆分。也有依赖于
i
而没有__iter__
属性的版本。我不知道这些,因为我认为str
现在有了这个属性。但是,值得一提。(请对链接的答案进行投票。)
使用递归。
测试:
相关问题 更多 >
编程相关推荐