如何从数组中的值迭代字典并存储在新字典中
how to iterate over a dictionary from value in an array and store in a new dictionary
我有一个数组(Arr[]),对于数组中的每个项目,我希望它通过一个字典(specs{})并计算相应的值并将它们存储在一个新字典中但是确定如何为这个新字典 {results{}) 指定键和值。
Arr=["saucer", "shoes"]
def calc(Arr, context, user_results):
results = {}
for x in Arr:
if x == specs.keys():
results = specs.values
results.append(x : results)
return results
specs = {'cup': 3,'saucer': 5, 'bag': 17, 'shoes': 9}
结果={"saucer": 5, "shoes": 9}
您可以使用 dict
理解来使用 specs
中的项目构建新的 dict
results = {key: specs[key] for key in Arr if key in specs}
In [9]: specs = {'cup': 3,'saucer': 5, 'bag': 17, 'shoes': 9}
In [10]: Arr=["saucer", "shoes"]
In [11]: R = {k: v for k, v in specs.items() if k in Arr}
In [12]: R
Out[12]: {'saucer': 5, 'shoes': 9}
输入:
Arr=["saucer", "shoes"]
specs = {'cup': 3,'saucer': 5, 'bag': 17, 'shoes': 9}
代码#1:
results = {item: specs.get(item, None) for item in Arr if item in specs}
代码#2:
results = {key: value for key, value in specs.items() if key in Arr}
结果:
{'saucer': 5, 'shoes': 9}
只需检查列表并创建另一个字典
specs = {'cup': 3,'saucer': 5, 'bag': 17, 'shoes': 9}
Arr= ["saucer", "shoes"]
em={}
for item in Arr:
if item in specs:
em[item] = specs[item]
print(em)
{'saucer': 5, 'shoes': 9}
您可以使用函数 itemgetter
从字典中获取值,并使用 zip
包含值的 arr
列表来构建新字典:
from operator import itemgetter
arr = ["saucer", "shoes"]
specs = {'cup': 3, 'saucer': 5, 'bag': 17, 'shoes': 9}
dict(zip(arr, itemgetter(*arr)(specs)))
# {'saucer': 5, 'shoes': 9}
我有一个数组(Arr[]),对于数组中的每个项目,我希望它通过一个字典(specs{})并计算相应的值并将它们存储在一个新字典中但是确定如何为这个新字典 {results{}) 指定键和值。
Arr=["saucer", "shoes"]
def calc(Arr, context, user_results):
results = {}
for x in Arr:
if x == specs.keys():
results = specs.values
results.append(x : results)
return results
specs = {'cup': 3,'saucer': 5, 'bag': 17, 'shoes': 9}
结果={"saucer": 5, "shoes": 9}
您可以使用 dict
理解来使用 specs
dict
results = {key: specs[key] for key in Arr if key in specs}
In [9]: specs = {'cup': 3,'saucer': 5, 'bag': 17, 'shoes': 9}
In [10]: Arr=["saucer", "shoes"]
In [11]: R = {k: v for k, v in specs.items() if k in Arr}
In [12]: R
Out[12]: {'saucer': 5, 'shoes': 9}
输入:
Arr=["saucer", "shoes"]
specs = {'cup': 3,'saucer': 5, 'bag': 17, 'shoes': 9}
代码#1:
results = {item: specs.get(item, None) for item in Arr if item in specs}
代码#2:
results = {key: value for key, value in specs.items() if key in Arr}
结果:
{'saucer': 5, 'shoes': 9}
只需检查列表并创建另一个字典
specs = {'cup': 3,'saucer': 5, 'bag': 17, 'shoes': 9}
Arr= ["saucer", "shoes"]
em={}
for item in Arr:
if item in specs:
em[item] = specs[item]
print(em)
{'saucer': 5, 'shoes': 9}
您可以使用函数 itemgetter
从字典中获取值,并使用 zip
包含值的 arr
列表来构建新字典:
from operator import itemgetter
arr = ["saucer", "shoes"]
specs = {'cup': 3, 'saucer': 5, 'bag': 17, 'shoes': 9}
dict(zip(arr, itemgetter(*arr)(specs)))
# {'saucer': 5, 'shoes': 9}