我陷入了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]
有没有一种方法可以保留原始列表而不在循环中重新定义它?
答案 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中完成工作的好方法:)