如何在python中迭代时更改容器中的数据

时间:2011-11-03 23:54:54

标签: python

给出以下示例:

container = [ (1, "a") , 
              (40, "b") ,
              (24, "c") ,  #we intend to change this
              (103, "d")
            ]

for k,v in container:
    if k == 24:
        v += " good"

print container

容器 中的 (24,“c”) 数据对仍将保持其原始值, 并且不会更改为 (24,“c good”) 。如何在迭代期间将其改为 (24,“c good”)

我使用python 2.7,但也欢迎使用3.x示例。

感谢。

2 个答案:

答案 0 :(得分:6)

您可以使用enumerate()跟踪您正在查看的容器项目的索引:

for i, (k,v) in enumerate(container):
    if k == 24:
        container[i] = (k, v+" good")

答案 1 :(得分:1)

搞砸了一下。现在修复

container = [ (1, "a") , 
                  (40, "b") ,
                  (24, "c") ,  #we intend to change this
                  (103, "d")
                ]

for k, n in enumerate(container):
    if n[0] == 24:
        container[k] = (n[0], n[1] + " good")

print container