[英]How do I initialize a dictionary with a list of keys and values as empty sets in python3.6?
[英]how to change string key in dictionary inside list | python3.6
我想将键名'user_id'更改为'sender'例如:
[{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
'message_id': 1,
'user_id': 1000000},
{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
'message_id': 2,
'user_id': 1000000},
{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
'message_id': 3,
'user_id': 1000000},
{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
'message_id': 4,
'user_id': 1000000}]
至 :
[{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
'message_id': 1,
'sender': 1000000},
{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
'message_id': 2,
'sender': 1000000},
{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
'message_id': 3,
'sender': 1000000},
{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
'message_id': 4,
'sender': 1000000}]
我该怎么办?
只需遍历数据并更改将适当的分配给'sender'
键的字典,即可从'user_id'
pop
:
for d in data:
d['sender'] = d.pop('user_id')
没有循环怎么办?
一线解决方案:
list(map(lambda x:x.__setitem__('sender',x.pop('user_id')),your_data))
数据是:
your_data=[{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
'message_id': 1,
'user_id': 1000000},
{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
'message_id': 2,
'user_id': 1000000},
{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
'message_id': 3,
'user_id': 1000000},
{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
'message_id': 4,
'user_id': 1000000}]
输出:
[{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3', 'message_id': 1, 'sender': 1000000}, {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3', 'message_id': 2, 'sender': 1000000}, {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3', 'message_id': 3, 'sender': 1000000}, {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3', 'message_id': 4, 'sender': 1000000}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.