Py学习  »  Python

Python将对象列表添加为dict值

Fed.Ushel • 3 年前 • 1594 次点击  

每个人 我觉得这很简单,但我不知道怎么做。 我有一句格言:

 message = {'message': 'bla bla bla', 'data':[]}

以及一份清单:

 my_list = [('a', 1), ('b', 2)]

我想将列表中的数据附加到dict中。我的dict最终应该是:

 {'message': 'bla bla bla', 'data':[{'text': 'a', 'value': 1}, {'text': 'b', 'value': 2} ]}

我试着这样做:

 for item in my_list:
      message['data'][array.index(item)] = {'text': item[0], 'value': item[1]}

但它不起作用:(

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128289
 
1594 次点击  
文章 [ 3 ]  |  最新文章 3 年前
Ani M
Reply   •   1 楼
Ani M    3 年前

你可以使用 .append() 功能:

message = {'message': 'bla bla bla', 'data':[]}
my_list = [('a', 1), ('b', 2)]

for item in my_list:
  message['data'].append({'text': item[0], 'value': item[1]})

print(message)

输出:

{'message': 'bla bla bla', 'data': [{'text': 'a', 'value': 1}, {'text': 'b', 'value': 2}]}

这将附加字典,因为索引处的元素尚未定义。

dekuShrub
Reply   •   2 楼
dekuShrub    3 年前

试试这个

for item in my_list:
    message['data'] += [{'text': item[0], 'value': item[1]}]

它使用python的 + 名单接线员。

chepner
Reply   •   3 楼
chepner    3 年前

你可以用一句简单的话来做到这一点:

message['data'].extend({'text': t, 'value': n} for t, n in my_list)

生成器表达式创建所需的 dict 价值观,以及 extend 将它们附加到 message['data'] 一次一个。