Как перебрать список и распечатать ключи в указанном порядке c - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь распечатать ключи моего списка покупок в том же порядке, в котором они изначально были записаны в словаре, это только помогает мне печатать ключи в алфавитном порядке.

Вот мой код в настоящее время:

grocery_list = {
    "name": "milk",
    "cost": "2.99",
    "quantity": "2",
}

for i in sorted(grocery_list.keys()):
    print(grocery_list[i])

Ответы [ 4 ]

1 голос
/ 04 февраля 2020

Как указано в комментариях, dictionaries были неупорядоченными контейнерами, но последние версии python поддерживают порядок вставки, так что вы можете просто сделать это для python3.6+:

grocery_list = {
    'name': 'milk',
    'cost':'2.99',
    'quantity':'2'
}

for key, value in grocery_list.items():
   print(key, value, sep=': ')

>>> name: milk
>>> cost: 2.99
>>> quantity: 2

Если вы используете более старую версию python версия, вы должны как-то указать порядок, в данном случае это руководство:

ordered_keys = ['name', 'cost', 'quantity']

for key in ordered_keys:
    print(key, grocery_list[key], sep=': ')

>>> name: milk
>>> cost: 2.99
>>> quantity: 2
0 голосов
/ 04 февраля 2020

Для версий 3.6+ просто используйте grocery_list.keys(), чтобы получить все ключи вашего словаря. Возвращает dict_keys(['name', 'cost', 'quantity']) Для более старых версий вы можете использовать OrderedDict. Это сохранит порядок вашего словаря.

0 голосов
/ 04 февраля 2020

Вы можете использовать OrderedDict.

from collections import OrderedDict

d1 = OrderedDict({
    'name': 'milk',
    'cost': '2.99',
    'quantity': '2'
})
print(d1.keys())
0 голосов
/ 04 февраля 2020

Ключи возвращаются в произвольном порядке, может быть полезно обратиться к этой ссылке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...