附加到Python中的列表:每次都添加最后一个元素吗?

凯西·阿塞卡斯

我想将字典添加到列表中,但是得到的结果不是我想要的。

我的代码:

records=[]
record={}
for i in range(0,2):
  record['a']=i  
  for j in range (0,2):
    record['b']=j
    records.append(record)
print records 

我期望:

[{'a': 0, 'b': 0}, {'a': 0, 'b': 1}, {'a': 1, 'b': 0}, {'a': 1, 'b': 1}]

我得到:

[{'a': 1, 'b': 1}, {'a': 1, 'b': 1}, {'a': 1, 'b': 1}, {'a': 1, 'b': 1}]

为什么每次都只添加最后一个元素?

马丁·彼得斯(Martijn Pieters)

您正在重用并添加一个字典如果您想要单独的词典,则每次都添加一个副本:

records = []
record = {}
for i in range(2):
    record['a'] = i  
    for j in range(2):
        record['b'] = j
        records.append(record.copy())

或每次创建一个新词典:

records = []
for i in range(2):
    for j in range(2):
        record = {'a': i, 'b': j}
        records.append(record)

后一种方法有助于将其翻译为列表理解:

records = [{'a': i, 'b': j} for i in range(2) for j in range(2)]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python For循环仅将最后一个值附加到列表中

为什么 Python for 循环每次都返回最后一个元素?

如何使用 jquery 将类添加或附加到最后一个 li 元素

将列表的所有元素分别附加到python中另一个列表的所有元素

所有值都添加到 HashMap 中,但只返回最后一个值

为什么在 Kotlin 的以下程序中只存储/打印了添加到列表中的最后一个元素?

过滤最后一个元素并添加到可变列表Kotlin的列表顶部

Python:比较列表中的最后一个元素

Python将列表中的最后一个元素分组

使用Python中每个列表的最后一个元素

为什么list [x]每次都转到python中的下一个元素?

我如何将此项目附加到同一列表,而不是每次循环时都创建一个新列表?

将列表(元素)附加到另一个列表中,按字母给出一个元素

如何将列表中的匹配元素附加到另一个列表?

将列表的元素作为最后一个元素插入到python列表中的列表中

从最后一个元素开始按顺序将class添加到元素的集合中

将子列表的最后一个元素追加到列表中

在多次上传中,所有图像都附加到最后一个容器 div

如何基于Python中的上一个元素将新元素添加到列表中?

如何通过循环将矩阵的第一个元素附加到列表中?

将字符串附加到列表中的第一个元素

附加到元组中定义的列表-这是一个错误吗?

根据列表的最后一个值和第一个值在 python 中附加嵌套列表

如何将一个列表元素分别添加到 2 个列表中?

仅将最后一个元素添加到 Android 中的 RecyclerView (Kotlin)

可以忽略列表的最后一个元素吗?

如何在R中循环的最后一个元素之后追加到列表?

如何在Python3中将一个列表中的元素添加到另一个列表中?

迭代地将 N 个项目附加到列表中,而是给最后一个项目 N 次