对于这个问题,我有一个名为List
的列表,其中包含元组。
List = [
("foo", "bar", 1, 0),
("foo", "bar", 3, 1),
("foo", "bar", 1, 2)
]
在每个子列表的索引位置
2
(列表中的第三项)中,我需要替换为另一个列表中的相应项。References = ["zero", "one", "two", "three"]
预期输出将是以下项的新
List
:List = [
("foo", "bar", "one", 0),
("foo", "bar", "three", 1),
("foo", "bar", "one", 2)
]
请注意,列表的其他部分上还有整数,但这些整数保持不变。
我当前的代码替换了我不想要的所有整数实例:
for r in range(0, len(References)):
for i in List:
List[List.index(i)] = [References[t] if x==t else x for x in i]
问:我该怎么做?提前致谢。
编辑:我的代码有误-
List
内部是元组,而不是列表。 最佳答案
元组是不可变的,这意味着您无法更新或更改元组元素的值。您可以执行以下任一过程:
1)您可以采用部分现有元组来创建新元组,如下所示:
List_One = [
("foo", "bar", 1, 0),
("foo", "bar", 3, 1),
("foo", "bar", 1, 2)
]
List_Two = []
References = ["zero", "one", "two", "three"]
for i in List_One:
tup = (i[0], i[1], References[i[2]], i[3])
List_Two.append(tup)
print(List_Two)
2)您可以将元组转换为列表,根据需要进行更改,然后将列表更改回元组。
List = [
("foo", "bar", 1, 0),
("foo", "bar", 3, 1),
("foo", "bar", 1, 2)
]
References = ["zero", "one", "two", "three"]
for i in range(len(List)):
List[i] = list(List[i])
for i in List:
i[2] = References[i[2]]
for i in range(len(List)):
List[i] = tuple(List[i])
print(List)
关于python - 遍历列表并替换某个索引中的实例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54840864/