在此 Python 程序中,我们将展示使用索引位置、切片、循环、lambda、map 和列表推导式更改列表项的步骤。正如我们已经知道的,列表是可变的,因此在创建列表后,我们可以在任何位置更改项目。
Python 程序使用索引更改列表项
在下面的示例中,我们创建了一个包含六个元素的简单整数列表。接下来,我们使用索引位置将第 4 个元素更改或替换为 100。请记住,索引位置从 0 到 n-1,因此 a[3] 表示第 4 个元素。
a = [5, 10, 15, 20, 25, 30]
print(a)
a[3] = 100
print(a)
[5, 10, 15, 20, 25, 30]
[5, 10, 15, 100, 25, 30]
[5, 10, 15, 20, 25, 30]
[5, 10, 15, 100, 25, 30]
使用切片
上述方法一次只更改一个列表项。但是,您可以使用列表切片技术一次更改多个项。例如,下面 Python 程序中的第一个语句 a[2:6] 将更改索引位置从 2 到 6(2、3、4 和 5)的列表项。下一个语句 a[2: 7] 将 5 个项(2、3、4、5 和 6)替换为 4 个项。
a = [5, 10, 15, 20, 25, 30, 35, 40]
print(a)
a[2:6] = [100, 200, 300, 400]
print(a)
a[2:7] = [100, 200, 300, 400]
print(a)

上述两种方法有助于按顺序更改最后一个项目。但是,您可以使用下面的方法根据条件或表达式更改列表项。
Python 程序使用 for 循环更改列表项
下面的 程序 使用 for 循环 从 0 开始遍历列表到列表的长度。接下来,if 条件检查索引位置是否为偶数。如果是,则将现有值加 100。
a = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
print(a)
for i in range(len(a)):
if i % 2 == 0:
a[i] += 100
print(a)
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
[110, 20, 130, 40, 150, 60, 170, 80, 190, 100]
使用 for 循环和 enumerate
我们不使用 len() 函数,而是使用 for 循环的 enumerate 来提取索引和值。这里,i 是索引位置,n 是该位置的实际值。如果 (if n % 3 == 0) 值可以被三整除,则将现有值加 200。
a = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
print(a)
for i, n in enumerate(a):
if n % 3 == 0:
a[i] += 200
print(a)
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
[10, 20, 230, 40, 50, 260, 70, 80, 290, 100]
使用列表推导式
这是根据条件更新或更改列表项的最佳且最简单的方法。下面的程序 列表推导式 将把列表元素乘以 3,如果该值可以被 4 整除的话。
a = [10, 20, 30, 40, 50, 60]
print(a)
a = [n * 3 if n % 4 == 0 else n for n in a]
print(a)
[10, 20, 30, 40, 50, 60]
[10, 60, 30, 120, 50, 180]
使用 map()
除了上述方法之外,您还可以使用 map() 函数来更改每一个列表项。下面的 Python 程序将使用 map 和 lambda 将每个列表项除以 2。
a = [10, 20, 30, 40, 50, 60]
print(a)
a = list(map(lambda n: n // 2, a))
print(a)
[10, 20, 30, 40, 50, 60]
[5, 10, 15, 20, 25, 30]