альтернативные способы форматирования словаря с использованием цикла for - PullRequest
0 голосов
/ 21 ноября 2018

Итак, я искал, как напечатать этот словарь, dictionary = {'hello':'1', 'world' : '2'} в терминал / консоль, например:

привет: 1

world: 2

Один из подходов состоял в том, чтобы просто запустить цикл for:

for i in dictionary:
    print(i + ' ' + ":" + " " + dictionary[i])

, и это сработало очень хорошо, однако, есть ли другой способ сделать это?Я не понимаю, откуда цикл знает, что i - это ключ, а dictionary[i] - это значение ... Если бы кто-то мог объяснить, как он работает, или дать лучший способ распечатать то, что я хотел в приведенной выше цитате, это было быс благодарностью!

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Возможно, вы ищете dictionary.items(), который возвращает список наборов (ключ, значение).Вы можете написать цикл for, например:

for key, value in dictionary.items():
     # do something 

Также есть способы получить значения или ключи для итерации, это достигается с помощью dictionary.values() и dictionary.keys().

То, что делает цикл for, выполняет итерацию по ключам, а ваш dictionary[i] является просто обычным вызовом «получить соответствующее значение для ключа i».

0 голосов
/ 21 ноября 2018

В вашем решении, когда вы делаете это: for i in dictionary: - это то же самое, что и: for i in dictionary.keys():, то есть по умолчанию цикл перебирает ключи в словаре.Сказав это, я считаю, что это более идиоматично:

for key, value in dictionary.items():
    print("{} : {}".format(key, value))
  • Мы получаем ключи и значения одновременно с помощью метода items().
  • Форматирование строкивыполняется методом format(), а {} являются заполнителями, которые должны быть заменены переданными аргументами.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...