У меня есть массив (Arr []), для каждого элемента в массиве я хотел бы, чтобы он проходил через словарь (specs {}) и вычислял соответствующие значения и сохранял их в новом словаре, но точно, как указать ключ и значение для этого нового словаря {результаты {}).
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}
Результаты = {"блюдце": 5, "обувь": 9}
5 ответов
Вы можете использовать dict
понимание, чтобы создать новый dict
, используя элементы в specs
results = {key: specs[key] for key in Arr if key in specs}
Ввод:
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}
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}
Просто проверьте список и создайте другой словарь
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
со значениями для построения нового dict:
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}
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.