我刚刚开始使用Python(VBA背景)。为什么此字典创建混乱?不应该是a:1,b:2 …等吗?
class Card: def county(self): c = 0 l = 0 groupL = {} # groupL for Loop for n in range(0,13): c += 1 l = chr(n+97) groupL.setdefault(l,c) return groupL pick_card = Card() group = pick_card.county() print group
这是输出:
{'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4, 'g': 7, 'f': 6, 'i': 9, 'h': 8, 'k': 11, 'j': 10, 'm': 13, 'l': 12}
还是只是打印出乱序?
字典在python中没有顺序。换句话说,当您遍历字典时,键/项目“屈服”的顺序不是您将其放入字典的顺序。(在其他版本的python上尝试您的代码,您可能会获得不同顺序的输出)。如果您要订购的字典,则需要一个collections.OrderedDict直到python 2.7才引入的字典。ActiveState如果您使用的是旧版本的python ,则可以找到等效的食谱。但是,通常只需对项目进行排序就足够了(例如sorted(mydict.items())。
collections.OrderedDict
ActiveState
sorted(mydict.items())
*根据要求 *编辑 ,一个OrderedDict示例:
from collections import OrderedDict groupL = OrderedDict() # groupL for Loop c = 0 for n in range(0,13): c += 1 l = chr(n+97) groupL.setdefault(l,c) print (groupL)