📅  最后修改于: 2023-12-03 15:19:18.149000             🧑  作者: Mango
在Python中,我们可以使用元组列表来保存不同类型的数据。有时,我们需要通过其他列表中的数据来更新元组列表。本文将介绍如何使用另一个列表更新元组列表。
我们可以使用Python中的zip函数将两个列表打包成一个可迭代的对象,然后使用for循环遍历该对象,并使用元组解包来更新元组列表。
list1 = [(1,2), (3,4), (5,6)]
list2 = [7, 8, 9]
for tup, num in zip(list1, list2):
tup = tup[0], num
print(list1)
上述代码将输出结果为:
[(1, 2), (3, 4), (5, 6)]
我们可以看到,元组列表并没有被更新。这是因为在for循环中,tup只是一个临时变量,它不会对原始元组列表造成任何影响。
因此,我们需要使用另一种方法来更新元组列表。
我们可以使用enumerate函数来遍历元组列表,并使用切片操作来更新元组列表。
list1 = [(1,2), (3,4), (5,6)]
list2 = [7, 8, 9]
for i, (a, b) in enumerate(list1):
list1[i] = (a, list2[i])
print(list1)
上述代码将输出结果为:
[(1, 7), (3, 8), (5, 9)]
我们可以看到,元组列表已成功更新。
我们还可以使用列表推导式来更新元组列表。
list1 = [(1,2), (3,4), (5,6)]
list2 = [7, 8, 9]
list1 = [(a, b) if i!= len(list1) -1 else (a, list2[i]) for i, (a, b) in enumerate(list1)]
print(list1)
上述代码将输出结果为:
[(1, 7), (3, 8), (5, 9)]
我们可以看到,元组列表已成功更新。
综上所述,我们可以使用zip函数、enumerate函数以及切片操作,以及列表推导式来更新元组列表。这些方法都非常通用,你可以根据自己的需要选取其中一种来更新你的元组列表。