繁体   English   中英

如何遍历列表并按特定顺序打印密钥

[英]How to iterate through a list and print the key's in a specific order

我正在尝试按照最初在字典中写入的顺序打印我的购物清单的键,这只能帮助我按字母顺序打印键。

这是我目前的代码:

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

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

正如评论中所述, dictionaries是无序的容器,但最近的python版本保持插入顺序,所以你可以只对python3.6+执行此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

键以任意顺序返回,参考此链接可能会有所帮助。

您可以选择使用 OrderedDict。

from collections import OrderedDict

d1 = OrderedDict({
    'name': 'milk',
    'cost': '2.99',
    'quantity': '2'
})
print(d1.keys())

对于 3.6+ 版本,只需使用grocery_list.keys()即可获取字典的所有键。 它返回dict_keys(['name', 'cost', 'quantity'])对于旧版本,您可以使用OrderedDict 这将保留字典的顺序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM