将不同的变量添加到循环列表中

时间:2019-06-25 16:26:17

标签: python list for-loop

我陷入了Python问题。我想将一个变量列表添加到一个列表中,以便具有多个列表,这种方式(这是一个示例):

legal = [1, 2, 3, 4, 5]
state = [0, 9]
for p in legal:
    new = state
    new.append(p)
    print(new)

我使用以下代码得到的输出:

[0, 9, 1]
[0, 9, 1, 2]
[0, 9, 1, 2, 3]
[0, 9, 1, 2, 3, 4]
[0, 9, 1, 2, 3, 4, 5]

我寻找的输出:

[0, 9, 1]
[0, 9, 2]
[0, 9, 3]
[0, 9, 4]
[0, 9, 5]

有没有一种方法可以保留原始列表而不在循环中重新定义它?

3 个答案:

答案 0 :(得分:1)

legal = [1, 2, 3, 4, 5]
state = [0, 9]
for p in legal:
    print(state + [p])

当您在列表上调用.append(val)时,它就地执行并更新原始列表。因此,更好的方法是在循环内部创建一个新列表,

for p in legal:
    tempList = state + [p]
    print(tempList)

答案 1 :(得分:0)

修改您的for循环以每次创建一个新列表

for p in legal:
    new = state + [p]
    print(new)

答案 2 :(得分:0)

您可能要使用的有用工具是列表理解。

这是一种随时创建列表的方式。

这将创建您的列表列表

output = [state + [i] for i in legal]

这是您以后可以在代码中使用的东西。

然后将它们全部打印掉就可以写

for list in output: print list

这将打印出您的输出。

希望这会有所帮助!这里还有其他答案,但是使用列表理解是在Python中完成工作的好方法:)