Skip to main content
 首页 » 编程设计

python之为列表的元素赋值

2025年05月04日9zhwl

当我有一个 for 循环时:

for row in list: 
    row = something_or_other 

似乎有时我可以直接给row赋值(或追加/扩展等)并且list相应地改变,有时我必须做一些事情环形交叉路口像:

for row in list: 
    list[list.index(row)] = something_or_other 

什么给了?!?

请您参考如下方法:

您永远不能像这样重新分配值 row(或者通常,无论您的迭代变量是什么):

x = [1, 2, 3] 
for x in lst: 
    x = # code 

因为这是完全重新分配变量 x(它说“忘记 x 是列表的成员”)。

但是,如果 x 是可变的,例如它是一个列表,您可以:

lst = [[1, 2], [3, 4]] 
for x in lst: 
    x.append(10) 

它实际上会更改值(到 [[1, 2, 10], [3, 4, 10]])。用技术术语来说,这是 rebinding and mutating operations 之间的区别。 .