ищет лучший вариант для печати связанных значений из двух элементов в словаре python - PullRequest
0 голосов
/ 04 мая 2020

Для словаря python ниже:

fruits = {'names': ['apple', 'banana', 'mango'], 
          'prices': [12.99, 2.99, 9.99] 
          }

Как узнать цены, связанные с каждым фруктом?

Как правило, я хочу парную печать:

 apple = 12.99
 banana = 2.99
 mango = 9.99

Я думал об использовании double для l oop, например:

 for fruit in fruits['names']:
     print(fruit)
     for ….
         print(...)

, но почему-то это выглядит не очень хорошо. Любые другие варианты?

Ответы [ 2 ]

4 голосов
/ 04 мая 2020

Вы можете использовать словарь, который сопоставляет названия с ценами с самого начала:

prices = dict(zip(fruits['names'], fruits['prices']))  # in case you need to convert

Затем просто выполните итерацию по этому словарю:

for fruit, price in prices.items():
    print(f'{fruit} = {price:.2f}')
2 голосов
/ 04 мая 2020

Помимо изменения структуры данных (которую я рекомендовал бы в любом случае, поскольку имя и цена просто плохо связаны одной и той же позицией в разных массивах), существует стандарт:

for fruit_name, fruit_price in zip(fruits["names"], fruits["prices"]):
   print(...)
...