Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在另一个词典中添加词典项_Python 3.x - Fatal编程技术网

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'}]
战略:

  • 从具有键的位置的数据中获取值,并将其存储在变量中
  • 再次从具有键的数据中获取值,并将它们附加到数字1中使用的变量中
  • 打印存储在上述变量中的值
  • [代码]

    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)
    
    战略:

  • 从具有键的位置的数据中获取值,并将其存储在变量中
  • 再次从具有键的数据中获取值,并将它们附加到数字1中使用的变量中
  • 打印存储在上述变量中的值
  • [代码]

    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)