python修改列表中的项,保存回lis中

2024-04-26 12:05:43 发布

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

我有一个预感,我需要访问(字符串)列表中的一个项,修改该项(字符串),并将其放回同一索引中的列表中

我很难把一个项目恢复到同一索引中

for item in list:
    if "foo" in item:
        item = replace_all(item, replaceDictionary)
        list[item] = item
        print item

现在我得到一个错误

TypeError: list indices must be integers, not str

由于这一行list[item] = item

这是有道理的!但我不知道如何使用python将该项放回同一索引处的列表中

它的语法是什么?理想情况下,for循环可以跟踪我当前所在的索引


Tags: 项目字符串in列表foriffoo错误
3条回答

更改列表中每个元素的常用习惯用法如下:

for i in range(len(L)):
    item = L[i]
    # ... compute some result based on item ...
    L[i] = result

这可以使用枚举()重写为:

for i, item in enumerate(L):
    # ... compute some result based on item ...
    L[i] = result

enumerate

您需要使用枚举函数:python docs

for place, item in enumerate(list):
    if "foo" in item:
        item = replace_all(item, replaceDictionary)
        list[place] = item
        print item

另外,使用单词list作为变量也是一个坏主意,因为它在python中是一个保留单词。

因为枚举有问题,所以itertools库中的另一个选项是:

for place, item in itertools.zip(itertools.count(0), list):
    if "foo" in item:
        item = replace_all(item, replaceDictionary)
        list[place] = item
        print item

你可以这样做:

for idx, item in enumerate(list):
   if 'foo' in item:
       item = replace_all(...)
       list[idx] = item

相关问题 更多 >