Python 2.7 按顺序迭代字典并打印值
运行此代码时的输出如下所示:Python 2.7 按顺序迭代字典并打印值,python-2.7,dictionary,Python 2.7,Dictionary,运行此代码时的输出如下所示: prices = { "banana": 4, "apple": 2, "orange": 1.5, "pear": 3 } stock = { "banana": 6, "apple": 0, "orange": 32, "pear": 15 } for key in stock: print key print 'prince: %s' % prices[key] pri
prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}
stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}
for key in stock:
print key
print 'prince: %s' % prices[key]
print 'stock: %s' % stock[key]
orange
prince: 1.5
stock: 32
pear
prince: 3
stock: 15
banana
prince: 4
stock: 6
apple
prince: 2
stock: 0
为什么不按照元素在字典中出现的顺序打印?例如,为什么不先打印“香蕉”,如下所示:
prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}
stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}
for key in stock:
print key
print 'prince: %s' % prices[key]
print 'stock: %s' % stock[key]
orange
prince: 1.5
stock: 32
pear
prince: 3
stock: 15
banana
prince: 4
stock: 6
apple
prince: 2
stock: 0
Python字典是无序的,这意味着它们不会记住您将元素放入的顺序。如果您正在查找有关词典的更多信息,则有一些答案可能对您有所帮助
您可以使用创建有序字典。字典是一组无序的键:值对。他们没有秩序的概念 如果您想要一本有序的词典,可以查看OrderedDict。有序词典与常规词典一样,但它们记住插入项的顺序。当在一个有序字典上迭代时,这些项将按照它们的键第一次添加的顺序返回 见: 收藏,订购
字典没有顺序。字典的意义在于通过程序员提供的一个键来获取条目,所以维护顺序是没有意义的;只要它是快速和容易获取项目的关键 有一种方法可以记住钥匙插入的顺序 对于您的情况,最好重新排列您的数据:
banana
price: 4
stock: 6
也可以只使用tuple,如下所示:
stock = {'banana': {'price': 4, 'stock': 6}, 'apple': {'price': 2, 'stock': 0}}
for fruit, details in stock.iteritems():
print('{0}'.format(fruit))
print('Price: {0.price}'.format(details))
print('Stock: {0.stock}'.format(details))
因为字典是不按顺序排列的。一位基督徒说,如果你想要一个排序的列表,你必须调用
来获得key-in-sorted(stock.keys()
@mtik00,这似乎产生了字母排序,而实际上OP似乎只是想保持它们与在ah中添加的顺序相同,这是一个好发现@nbrooks。