我为提出这么简单的问题而道歉,但我尝试搜索这个网站,但仍未找到有效的答案。
我有以下列表,其中包含元组:
[('1', '1', '1', '1'), ('1', '1', '1', '2'), ('1', '1', '1', '3'),
('1', '1', '1', '4'), ('1', '1', '2', '2'), ('1', '1', '2', '3'),
('1', '1', '2', '4'), ('1', '1', '3', '3'), ('1', '1', '3', '4'),
('1', '1', '4', '4'), ('1', '2', '2', '2'), ('1', '2', '2', '3'),
('1', '2', '2', '4'), ('1', '2', '3', '3'), ('1', '2', '3', '4'),
('1', '2', '4', '4'), ('1', '3', '3', '3'), ('1', '3', '3', '4'),
('1', '3', '4', '4'), ('1', '4', '4', '4'), ('2', '2', '2', '2'),
('2', '2', '2', '3'), ('2', '2', '2', '4'), ('2', '2', '3', '3'),
('2', '2', '3', '4'), ('2', '2', '4', '4'), ('2', '3', '3', '3'),
('2', '3', '3', '4'), ('2', '3', '4', '4'), ('2', '4', '4', '4'),
('3', '3', '3', '3'), ('3', '3', '3', '4'), ('3', '3', '4', '4'),
('3', '4', '4', '4'), ('4', '4', '4', '4')]
我想用另一个名为'List1'的列表替换所有'1'。然后我想将所有的2更改为List2和3s更改为List3等....最后我想要这样的事情:
[[[List1StuffA, List1StuffB, List1StuffC], [List1StuffA, List1StuffB, List1StuffC],
[List1StuffA, List1StuffB, List1StuffC], [List1StuffA, List1StuffB, List1StuffC]),
([List1StuffA, List1StuffB, List1StuffC], [List1StuffA, List1StuffB, List1StuffC],
[List1StuffA, List1StuffB, List1StuffC], [List2StuffA, List2StuffB, List2StuffC]),
([List1StuffA, List1StuffB, List1StuffC], [List1StuffA, List1StuffB, List1StuffC],
[List1StuffA, List1StuffB, List1StuffC], [List3StuffA, List3StuffB, List3StuffC]),
([List1StuffA, List1StuffB, List1StuffC], [List1StuffA, List1StuffB, List1StuffC],
[List1StuffA, List1StuffB, List1StuffC], [List4StuffA, List4StuffB, List4StuffC]),
...]
等List1 = [List1StuffA, List1StuffB, List1StuffC]
我似乎无法绕过“无法修改元组”位,我似乎无法将较大列表中的每个元组元素更改为列表本身(并让它保持这种方式)。
我尝试过这样的事情:
for item in OverallList:
item = list(item)
for x in item:
x = x.replace('1', List1)
x = x.replace('2', List2)
x = x.replace('3', List3)
x = x.replace('4', List4)
但是当我打印出整体列表时,没有任何改变。
任何帮助都会受到赞赏,如果我错过了一个可行的答案(或错误地应用了答案),我很抱歉。
答案 0 :(得分:1)
您需要将item
重新插入OverallList
for idx, item in enumerate(OverallList):
item = [{'1':List1, '2':List2, '3':List3, '4':List4}[k] for k in item]
OverallList[idx] = item
答案 1 :(得分:0)
在for循环中执行item = list(item)
时,您将失去对OverallList
的引用。这就是为什么item
的任何更改都没有反映在OverallList
中。同样适用于x
中的item
。
答案 2 :(得分:0)
我认为当你把'item = list(item)'放在你不再引用元组时 - 'item'是一个列表,它是从仍在列表中的现有元组创建的。尝试在循环中打印'x',你应该有一个包含你期望内容的列表。如果是这种情况,您需要做的就是删除元组,更改元组,然后将其重新插入。