Итерация по списку словаря с несколькими свойствами - PullRequest
2 голосов
/ 11 июля 2020

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

movie= [{'title': 'j', 'yor': 'n', 'dir': 'jn'}, {'title': 'hb', 'yor': 'jn', 'dir': 'kn'}]

Я хочу распечатать их, как показано ниже:

title: j, yor: n, dir: jn
title: hb, yor: jn, dir: kn

Я пробовал два разных подхода: использовать .items () для перебора словаря внутри вложенного для l oop, который перебирает список. Но в этом случае вывод будет на 6 разных строках - каждый элемент словаря на разных строках. И, если я попытаюсь напрямую распечатать значение элементов списка (ie. Словари), результат будет довольно сырым с скобками и апострофом, что нежелательно. Есть какие-нибудь советы о том, как этого можно достичь?

Код подхода 1:

    for _ in movie:
        print(_)

Результат:

{'title': 'j', 'yor': 'n', 'dir': 'jn'}
{'title': 'hb', 'yor': 'jn', 'dir': 'kn'}

Код подхода 2:

    for _ in movie:
        for k,v in _.items():
            print(k+": " +v)

Выход подхода 2:

title: j
yor: n
dir: jn
title: hb
yor: jn
dir: kn

1 Ответ

2 голосов
/ 11 июля 2020

Вы можете попробовать следующее:

for item in movie:
    print(f"title: {item['title']}, yor: {item['yor']}, dir: {item['dir']}")

Предполагая, что порядок ключей в списке будет таким же:

for item in movie:
    print(','.join(f"{key}: {value}" for key, value in item.items()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...