初始化lis的成员

2024-09-27 07:21:07 发布

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

我想用python初始化一个列表。我不明白为什么下面的代码不起作用:

u = ['abc', 'de', 'fghi', 'jklm', 'n', '']
for item in u:
 item = len(item)

还有其他方法可以初始化列表,例如:

^{pr2}$

但是,我的问题是为什么第一个代码不起作用。在

编辑: 我是Python和编程的新手。不幸的是,我不明白你回答的某些部分。例如:
-中重新绑定将名称item重新绑定到名称item
-“item”中的迭代器是一个临时变量,根据(隐式)迭代器指向
据我所知,我的第二个示例在内存中创建一个new_list,并将new_list的值赋给u。不管以前的值是什么。但我想知道如何更改第一个列表中的值。谢谢


Tags: 方法代码in名称列表newforlen
3条回答

将名称item重新绑定到刚刚被循环绑定的名称item的长度。不能用这种方式初始化list。您所做的就是在每次迭代中重新绑定一个变量。列表理解是初始化list的完全可接受的方法。在

在第一种情况下,您没有初始化任何内容。”item”是一个临时变量,它根据(隐式)迭代器所指的位置指向u的元素。如果要以第一种样式初始化列表,可以执行以下操作:

u = ['abc', 'de', 'fghi', 'jklm', 'n', '']
v = []
for item in u:
     v.append(len(item))
print v

不能仅通过为表示列表中某个条目的名称分配新值来更改列表的内容。您需要使用索引赋值,例如将列表中的第一个条目改为'foo',您可以这样做u[0] = 'foo'。在

在这种情况下,您可以执行以下操作(尽管您的问题的列表理解更清晰):

for i, item in enumerate(u):
    u[i] = len(item)

请注意,如果列表中的项是可变的,您可以直接修改元素,但不能重新分配它们。例如,使用列表:

^{pr2}$

相关问题 更多 >

    热门问题