Python 如何在for循环操作中访问列表中的每个元素?

Python 如何在for循环操作中访问列表中的每个元素?,python,for-loop,Python,For Loop,我正在循环浏览这个列表,不明白为什么print(d)返回seed中的每个数字,但是赋值I[“seed”]=d会赋值seed的最后一个元素 除了print()之外,如何访问seed中的每个元素 谢谢 问题是只有一个对象i,每次循环中都要替换它的值。到最后一次迭代时,i的(一个实例)的值设置为您分配给它的最后一个项。每次附加到res,基本上都是将一个指针附加到同一个对象上(因此循环完成后,最终会有9个指针指向同一个对象) 要回答第一个问题,这是因为seed的W值正在被覆盖,如下所示: >>

我正在循环浏览这个列表,不明白为什么
print(d)
返回
seed
中的每个数字,但是赋值
I[“seed”]=d
会赋值
seed
的最后一个元素

除了
print()
之外,如何访问
seed
中的每个元素


谢谢

问题是只有一个对象
i
,每次循环中都要替换它的值。到最后一次迭代时,i的(一个实例)的值设置为您分配给它的最后一个项。每次附加到
res
,基本上都是将一个指针附加到同一个对象上(因此循环完成后,最终会有9个指针指向同一个对象)


要回答第一个问题,这是因为seed的W值正在被覆盖,如下所示:

>>> p = {'t':'H'}
>>> p['t'] = 'k'
>>> p
{'t': 'k'}

我对你问题的第二部分感到困惑。详细说明?

问题在于如何定义i。我想您想要一个名为I的dictionary对象,它有一个名为“seed”的属性。您想将这些字典添加到res

实际上,您只有一个名为i的字典,每次通过循环时都会更新其中的值

试试这个:

res = []
seed = [1, 2, 3, 4, 5, 6, 7, 8, 9]

for d in seed:
    i = {}
    print(d)
    i["seed"] = d
    res.append(i)
print(res)

这将为每个循环创建一个新的i实例,您应该会得到您想要的结果。

python中的花括号
{}
表示基于键和值的工作方式。每次迭代循环时,都会用列表种子的当前值覆盖键:“种子”。因此,当循环结束时,列表seed的最后一个值就是dictionary i中seed的当前值。

感谢您的帮助,我应该在循环中创建i。干杯。
i[“seed”]=d
应该在做什么?它将密钥seed添加到dict(正在被覆盖)
>>> p = {'t':'H'}
>>> p['t'] = 'k'
>>> p
{'t': 'k'}
res = []
seed = [1, 2, 3, 4, 5, 6, 7, 8, 9]

for d in seed:
    i = {}
    print(d)
    i["seed"] = d
    res.append(i)
print(res)