可能重复:
在Python中列出列表列表中的平面列表
我试图找到一种简单的方法将多维(嵌套)python列表转换为单个列表,其中包含子列表的所有元素.
例如:
A = [[1,2,3,4,5]]
Run Code Online (Sandbox Code Playgroud)
转向
A = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
要么
A = [[1,2], [3,4]]
Run Code Online (Sandbox Code Playgroud)
转向
A = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud) 像这样的多维列表l=[[1,2],[3,4]]可以通过执行转换为1D 列表sum(l,[]).任何人都可以解释一下这是怎么回事?
响应者说,这种技术只能用于"压扁"2D列表 - 它不适用于更高的多维列表.但如果重复,它确实如此.例如,如果A是3D列表,则sum(sum(A),[]),[])将A压缩为1D列表.
我有一个元组元组 - 例如:
tupleOfTuples = ((1, 2), (3, 4), (5,))
Run Code Online (Sandbox Code Playgroud)
我想按顺序将其转换为所有元素的平面一维列表:
[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
我一直试图通过列表理解来实现这一目标.但我似乎无法弄明白.我能够通过for-each循环完成它:
myList = []
for tuple in tupleOfTuples:
myList = myList + list(tuple)
Run Code Online (Sandbox Code Playgroud)
但我觉得必须有一种方法可以通过列表理解来做到这一点.
一个简单的[list(tuple) for tuple in tupleOfTuples]只是给你一个列表列表,而不是单个元素.我想我可以通过使用解包操作符然后解压缩列表来构建它,如下所示:
[*list(tuple) for tuple in tupleOfTuples]
Run Code Online (Sandbox Code Playgroud)
要么
[*(list(tuple)) for tuple in tupleOfTuples]
Run Code Online (Sandbox Code Playgroud)
......但那没用.有任何想法吗?或者我应该坚持循环?
我有
a = [1, 2]
b = ['a', 'b']
Run Code Online (Sandbox Code Playgroud)
我想要
c = [1, 'a', 2, 'b']
Run Code Online (Sandbox Code Playgroud) 我在python中有一个列表的词典:
content = {88962: [80, 130], 87484: [64], 53662: [58,80]}
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个唯一值的列表
[58,64,80,130]
Run Code Online (Sandbox Code Playgroud)
我写了一个手动解决方案,但这是一个手动解决方案.我知道有更简洁,更优雅的方式来做这个与列表理解,map/reduce,itertools等等任何人都有线索?
content = {88962: [80, 130], 87484: [64], 53662: [58,80]}
result = set({})
for k in content.keys() :
for i in content[k]:
result.add(i)
# and list/sort/print just to compare the output
r2 = list( result )
r2.sort()
print r2
Run Code Online (Sandbox Code Playgroud) 我有一个列表如下:
[[1,2,3],[1,2],[1,4,5,6,7]]
Run Code Online (Sandbox Code Playgroud)
我想把它弄平 [1,2,3,1,2,1,4,5,6,7]
没有使用numpy有这么轻的功能吗?
假设我们有一个迭代器(一个无限的)返回列表(或有限迭代器),例如返回的一个
infinite = itertools.cycle([[1,2,3]])
Run Code Online (Sandbox Code Playgroud)
什么是一个很好的Python习惯用来获得一个迭代器(显然是无限的),它将从第一个迭代器返回每个元素,然后从第二个迭代器返回每个元素,等等.在上面的例子中它将返回1,2,3,1,2,3,....迭代器是无限的,所以itertools.chain(*infinite)不起作用.
是否可以将元素附加到python生成器?
我目前正在尝试从一组无组织的文件夹中获取所有图像,并将它们写入新目录.为了获取文件,我使用的是os.walk(),它返回一个目录中的图像文件列表.虽然我可以从这个单独的列表中创建一个生成器,但我不知道如何将所有这些列表组合到一个单独的生成器中.任何帮助将非常感激.
有关:
我有一个列表,有时它是嵌套的,有时它不是.根据它是否嵌套,延续是不同的.如何检查此列表是否嵌套?True或者False应该输出.
例:
[1,2,3] - > False
[[1],[2],[3]] - > True
快速简单的问题:
我如何合并这个.
[['a','b','c'],['d','e','f']]
Run Code Online (Sandbox Code Playgroud)
对此:
['a','b','c','d','e','f']
Run Code Online (Sandbox Code Playgroud)