用python创建字典列表

时间:2019-01-24 14:38:31

标签: python list dictionary

我试图通过循环构建字典列表,但是每次迭代时它都会覆盖dict的元素,因此我得到的列表中只有一个字典。

for element in elements:
  title = elements.get('test')
  content = elements.get('content')
  post_dict['titre'] = title
  post_dict['content'] = content
  list_elements.append(post_dict)
  print(list_elements)

4 个答案:

答案 0 :(得分:0)

您正在覆盖您创建的唯一字典中的数据。 您必须在每次迭代中创建一个新的字典:

for element in elements:
  post_dict = {}
  title = elements.get('test')
  content = elements.get('content')
  post_dict['titre'] = title
  post_dict['content'] = content
  list_elements.append(post_dict)
  print(list_elements)

答案 1 :(得分:0)

在每次迭代中,您都必须创建一个新的词典,而不要像现在一样更新同一字典。

for element in elements:
  post_dict = dict()
  title = elements.get('test')
  content = elements.get('content')
  post_dict['titre'] = title
  post_dict['content'] = content
  list_elements.append(post_dict)
print(list_elements)

答案 2 :(得分:0)

在上一个答案的基础上,您也许应该使用element而不是elements。否则,您的项目在每次循环迭代中根本就不会使用

for element in elements:
  post_dict = {}
  title = element.get('test')
  content = element.get('content')
  post_dict['titre'] = title
  post_dict['content'] = content
  list_elements.append(post_dict)
print(list_elements)

答案 3 :(得分:0)

post_dict指向同一个字典对象,这就是为什么它被覆盖的原因。

解决方案是创建一个新的字典对象:

for element in elements:
  d = {}
  title = elements.get('test')
  content = elements.get('content')
  d['title'] = title
  d['content'] = content
  list_elements.append(d)
  print(list_elements)