python列表推导结果很奇怪

时间:2019-12-10 14:06:02

标签: python list for-loop

我正在学习有关列表理解的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是否有任何特殊规则?还是一个复杂的错误?

1 个答案:

答案 0 :(得分:0)

在Python中set是无序的。要保留订单,可以考虑使用“收款”模块中的OrderedDict

dict对象并未用于保留顺序,但是在python 3.7之后可以保证这种行为。但是,OrderedDicts在后台仍具有一些优势,可以进行优化以跟踪插入顺序。

相关问题