sas*_*ero 3 python list-comprehension list python-3.x
这可能是一个愚蠢的问题,但......
list = []
for i in range(1, 5):
for j in range(i):
list.append(i)
print(list)
list2 = [[i]*i for i in range(1, 5)]
print(list2)
Run Code Online (Sandbox Code Playgroud)
使用以下代码我的输出就像
[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4]]
Run Code Online (Sandbox Code Playgroud)
我理解为什么第二个看起来像这样,但有没有任何技巧可以让第一个列表理解?
PS
Python 3
这是你想要的吗?
>>> list2 = [i for i in range(1, 5) for j in range(i)]
>>> list2
[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
Run Code Online (Sandbox Code Playgroud)
诀窍是for在列表理解中以相同的顺序放置类似的循环(因为你不需要列表列表,所以不要创建它们).