如何在for循环中创建和填充列表列表

问题描述 投票:6回答:5

我正在尝试使用for循环填充列表。这是我到目前为止的内容:

newlist = []
for x in range(10):
    for y in range(10):
        newlist.append(y)

此时,我很沮丧。我希望循环能给我10个列表的列表。

python list for-loop nested-lists
5个回答
12
投票

您接近它。但是您需要将内部循环中的新元素追加到一个空列表,该列表将作为外部列表的元素追加。否则,您将(从代码中看到)得到100个元素的平面列表。

newlist = []
for x in range(10):
    innerlist = []
    for y in range(10):
        innerlist.append(y)
    newlist.append(innerlist)

print(newlist)

请参阅以下Błotosmętek的评论,以获取其更简洁的版本。


6
投票

您可以将这一行代码与list comprehension一起使用以达到相同的结果:

list comprehension

4
投票

或者,您只需要一个循环并附加new_list = [[i for i in range(10)] for j in range(10)]

range(10)

newlist = []
for x in range(10):
    newlist.append(list(range(10)))

2
投票

您应该放置中间列表以获取另一个级别

newlist = [list(range(10)) for _ in range(10)]

2
投票

或者只是嵌套列表理解

newlist = []
for x in range(10):
    temp_list = []
    for y in range(10):
        temp_list.append(y)
    newlist.append(temp_list)
© www.soinside.com 2019 - 2024. All rights reserved.