社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python将对象列表添加为dict值

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

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

 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
 
1537 次点击  
文章 [ 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'] 一次一个。