简体   繁体   English

字典映射数组

[英]Mapping Array of Dictionary

i want to multiply data inside of array in dictionary.我想将字典中数组内的数据相乘。 Here's the data.这是数据。

data = [
  {"data_1": 2, "data_2": 2, "country": "France"},
  {"data_1": 4, "data_2": 4, "country": "UK"},
  {"data_1": 6, "data_2": 6, "country": "USA"},
]

And multiply the data_1 to 5 so the data is like并将 data_1 乘以 5 所以数据就像

data = [
  {"data_1": 10, "data_2": 2, "country": "France"},
  {"data_1": 20, "data_2": 4, "country": "UK"},
  {"data_1": 30, "data_2": 6, "country": "USA"},
]

I know the clue is using map, or lambda function.我知道线索是使用 map 或 lambda 函数。 But I have no idea how to do it.但我不知道该怎么做。 Thank you.谢谢你。

One liner:一个班轮:

for d in data: 
    d['data_1'] *= 5

Output:输出:

[{'country': 'France', 'data_1': 10, 'data_2': 2},
 {'country': 'UK', 'data_1': 20, 'data_2': 4},
 {'country': 'USA', 'data_1': 30, 'data_2': 6}]
def m5(hash):
    hash['data_1'] *= 5
    return hash

data2 = list(map(m5, data))

Lambdas are pure functions and as such don't allow assignment, so what you need is to supply a normal function to map(). Lambda 是纯函数,因此不允许赋值,因此您需要为 map() 提供一个普通函数。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM