在Python 2.7中改变列表

2024-09-27 20:19:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中修改列表时注意到了一点:

my_list = ['a','b','c','d','e']

例1

for letter in my_list:
    if letter == 'c':
        letter = 'x'

例2

for i in range(len(my_list)):
    if my_list[i] == 'c':
        my_list[i] = 'x'

结果1

my_list = ['a','b','c','d','e']

结果2

my_list = ['a','b','x','d','e']

所以我的问题是“letter”不是直接引用“myu list”中的元素吗? 这两个环路有什么区别?你知道吗


Tags: in元素列表forlenifmyrange
2条回答

在示例1中,letter是一个简单的变量,依次取每个列表元素的值。更改它根本不会影响列表。我想在例2中,“letter”应该替换为“list[I]”。在这种情况下,将修改列表。你知道吗

我会这样写:

my_list = ["x" if letter == "c" else letter for letter in my_list]

假设它的my_list[i]而不是示例2中的letter

在示例1中,执行for letter in my_list操作时,python遍历列表并将值存储在变量letter中。因此,它就像说letter = my_list[i]。现在您可以比较letter,但是更改letter不会更新myu列表中的值,因为letter只是列表元素的副本。你知道吗

相关问题 更多 >

    热门问题