假设有两个给定列表:
list1 = ['node1','node2','node3','node4']
list2 = ['goal1','goal2','goal3']
我需要一个列表,其中返回:
result = [['node1','node2','node3','node4','goal1'],
['node1','node2','node3','node4','goal2'],
['node1','node2','node3','node4','goal3']]
以下是我所拥有的:
result = []
for i in range (len(list2)):
list1.append(list2[i])
result.append(list1)
list1.pop()
问题是,结果没有附加所需的值。它打印出来了
[['node1', 'node2', 'node3', 'node4'],
['node1', 'node2', 'node3', 'node4'],
['node1', 'node2', 'node3', 'node4']]
在for
循环完成之后。你知道吗
我做错什么了?你知道吗
循环所做的是重复地将相同的list对象(
list1
)附加到result
。在运行循环并再次检查result
之后,可以通过执行类似于list1.append(True)
的操作来验证:您要做的是每次附加make a copy而不是
list1
,例如:尽管我可能会使用列表串联,它隐式地生成一个新列表:
您可以使用
extend
修复此问题:您可以使用list comp将
list1
每个目标添加到list1的末尾:输出:
相关问题 更多 >
编程相关推荐