【发布时间】:2011-09-02 01:54:44
【问题描述】:
我有一种预感,我需要访问(字符串)列表中的项目,修改该项目(作为字符串),然后将其放回列表中的同一索引中
我很难将一个项目恢复到同一个索引中
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 循环可以跟踪我当前所在的索引
【问题讨论】:
-
为什么一定要在列表的地方做呢?我最初的反应是使用列表理解: res = [ replace_all(item,replaceDictionary) for item in list if 'foo' in item ]
-
这很狡猾,但这和这有什么不同呢?
-
我能看到的唯一问题是您试图通过使用项目本身而不是项目的索引来引用列表项。除此之外看起来还不错。此外,您正在修改列表项,然后再引用它。可能是字典的问题。
-
关于上述内容的一般问题,replace_all 是否已弃用?还是我错过了它是代码中未定义的自定义函数。