我正在学习有关列表理解的python语法
我的目的是使用列表理解get dic
键并创建新的设置数据。
这是我的代码。
dic = {'hello': 2, 'hiaaaa': 1, 'goodmorning': 0}
new_set = { len(name) for name in dic.keys() }
print(new_set)
我希望结果是{5, 6, 11}
而不是{11, 5, 6}
。
当我向dic
添加数据时,结果总是不同的。
有时dic
是有序的,有时dic
是无序的。
那么python list comprehension是否有任何特殊规则?还是一个复杂的错误?
答案 0 :(得分:0)
在Python中set
是无序的。要保留订单,可以考虑使用“收款”模块中的OrderedDict
。
dict
对象并未用于保留顺序,但是在python 3.7之后可以保证这种行为。但是,OrderedDicts在后台仍具有一些优势,可以进行优化以跟踪插入顺序。