Python 3.x 如何在另一个词典中添加词典项
这是我的情况 我有一个这样的字典列表:Python 3.x 如何在另一个词典中添加词典项,python-3.x,Python 3.x,这是我的情况 我有一个这样的字典列表: data = [{'id': '1', 'name': 'David', 'location': {'latitude': -12.2139, 'longitude': -77.0375}}, {'id': '2', 'name': 'will', 'location': {'latitude': -22.2139, 'longitude': -87.0375}}, {'id': '3', 'name': 'john'
data = [{'id': '1', 'name': 'David', 'location': {'latitude': -12.2139, 'longitude': -77.0375}},
{'id': '2', 'name': 'will', 'location': {'latitude': -22.2139, 'longitude': -87.0375}},
{'id': '3', 'name': 'john', 'location': {'latitude': -32.2139, 'longitude': -97.0375}}]
预期产出为:
data = [{'latitude': -12.2139, 'longitude': -77.0375,'name': 'David' },
{'latitude': -22.2139, 'longitude': -87.0375, 'name': 'will'},
{'latitude': -32.2139, 'longitude': -97.0375, 'name': 'john'}]
我该怎么做呢?我自己已经找到了答案
l = []
for ele in data:
loc = ele.get('location')
name = ele.get('name')
loc.update(name=name)
l.append(loc)
我已经找到了自己的答案
l = []
for ele in data:
loc = ele.get('location')
name = ele.get('name')
loc.update(name=name)
l.append(loc)
使用for可以很容易地完成此操作
[{**x['location'] ,**{"name":x["name"]}} for x in data]
使用for可以很容易地完成此操作
[{**x['location'] ,**{"name":x["name"]}} for x in data]
我想试试这个。对于每个dict,它接受子dict并从原始dict中添加一个附加值
我想试试这个。对于每个dict,它将接受子dict并从原始dict中添加一个附加值。如果您想从数据中的位置键获取数据,可以使用以下方法:
new_data = list()
for item in data:
tmp = dict()
tmp['name'] = item.get('name')
tmp.update(dict(item.get('location')))
new_data.append(tmp)
#If you want the *data* to hold the variable:
#data = new_data
或者用一种更令人困惑的方法:
data = [{'name': item.get('name'), **item.get('location')} for item in data]
这将产生以下输出:
[{'name': 'David', 'latitude': -12.2139, 'longitude': -77.0375},
{'name': 'will', 'latitude': -22.2139, 'longitude': -87.0375},
{'name': 'john', 'latitude': -32.2139, 'longitude': -97.0375}]
如果要从数据中的位置键获取数据,可以使用以下方法:
new_data = list()
for item in data:
tmp = dict()
tmp['name'] = item.get('name')
tmp.update(dict(item.get('location')))
new_data.append(tmp)
#If you want the *data* to hold the variable:
#data = new_data
或者用一种更令人困惑的方法:
data = [{'name': item.get('name'), **item.get('location')} for item in data]
这将产生以下输出:
[{'name': 'David', 'latitude': -12.2139, 'longitude': -77.0375},
{'name': 'will', 'latitude': -22.2139, 'longitude': -87.0375},
{'name': 'john', 'latitude': -32.2139, 'longitude': -97.0375}]
使用
dict
理解对象解包
Ex:
data = [{'id': '1', 'name': 'David', 'location': {'latitude': -12.2139, 'longitude': -77.0375}},
{'id': '2', 'name': 'will', 'location': {'latitude': -22.2139, 'longitude': -87.0375}},
{'id': '3', 'name': 'john', 'location': {'latitude': -32.2139, 'longitude': -97.0375}}]
print([{'name': k['name'], **k['location']} for k in data])
[{'latitude': -12.2139, 'longitude': -77.0375, 'name': 'David'},
{'latitude': -22.2139, 'longitude': -87.0375, 'name': 'will'},
{'latitude': -32.2139, 'longitude': -97.0375, 'name': 'john'}]
输出:
data = [{'id': '1', 'name': 'David', 'location': {'latitude': -12.2139, 'longitude': -77.0375}},
{'id': '2', 'name': 'will', 'location': {'latitude': -22.2139, 'longitude': -87.0375}},
{'id': '3', 'name': 'john', 'location': {'latitude': -32.2139, 'longitude': -97.0375}}]
print([{'name': k['name'], **k['location']} for k in data])
[{'latitude': -12.2139, 'longitude': -77.0375, 'name': 'David'},
{'latitude': -22.2139, 'longitude': -87.0375, 'name': 'will'},
{'latitude': -32.2139, 'longitude': -97.0375, 'name': 'john'}]
使用
dict
理解对象解包
Ex:
data = [{'id': '1', 'name': 'David', 'location': {'latitude': -12.2139, 'longitude': -77.0375}},
{'id': '2', 'name': 'will', 'location': {'latitude': -22.2139, 'longitude': -87.0375}},
{'id': '3', 'name': 'john', 'location': {'latitude': -32.2139, 'longitude': -97.0375}}]
print([{'name': k['name'], **k['location']} for k in data])
[{'latitude': -12.2139, 'longitude': -77.0375, 'name': 'David'},
{'latitude': -22.2139, 'longitude': -87.0375, 'name': 'will'},
{'latitude': -32.2139, 'longitude': -97.0375, 'name': 'john'}]
输出:
data = [{'id': '1', 'name': 'David', 'location': {'latitude': -12.2139, 'longitude': -77.0375}},
{'id': '2', 'name': 'will', 'location': {'latitude': -22.2139, 'longitude': -87.0375}},
{'id': '3', 'name': 'john', 'location': {'latitude': -32.2139, 'longitude': -97.0375}}]
print([{'name': k['name'], **k['location']} for k in data])
[{'latitude': -12.2139, 'longitude': -77.0375, 'name': 'David'},
{'latitude': -22.2139, 'longitude': -87.0375, 'name': 'will'},
{'latitude': -32.2139, 'longitude': -97.0375, 'name': 'john'}]
战略:
datas = [{'id': '1', 'name': 'David', 'location': {'latitude': -12.2139, 'longitude': -77.0375}}, {'id': '2', 'name': 'will', 'location': {'latitude': -22.2139, 'longitude': -87.0375}}, {'id': '3', 'name': 'john', 'location': {'latitude': -32.2139, 'longitude': -97.0375}}]
for data in datas:
var = data['location'] # Getting value having key locations
var['name'] = data['name'] # Appending value of key "name"
''' You can also append by following ways:
var.update({'name': data['name']}
OR
var.update({'name': data.get('name')})'''
print(var)
战略:
datas = [{'id': '1', 'name': 'David', 'location': {'latitude': -12.2139, 'longitude': -77.0375}}, {'id': '2', 'name': 'will', 'location': {'latitude': -22.2139, 'longitude': -87.0375}}, {'id': '3', 'name': 'john', 'location': {'latitude': -32.2139, 'longitude': -97.0375}}]
for data in datas:
var = data['location'] # Getting value having key locations
var['name'] = data['name'] # Appending value of key "name"
''' You can also append by following ways:
var.update({'name': data['name']}
OR
var.update({'name': data.get('name')})'''
print(var)