用sorted对字典排序,打印的结果为什么会是这样?

图片描述

回答:

# 你新建了一个dict

In[1]: dic = {'k1': 1, 'k2': 3, 'k3': 2}

# 然后用sorted对字典的key按照字母升序排列

In[2]: sorted(dic.items())

# 注意看输出, 上面的排序是重新生成了一个由(key, value)组成的list, 并没有作用到dict上, 另外dict的key是hashtable, 本身无序, 是不能对其排序的

Out[2]: [('k1', 1), ('k2', 3), ('k3', 2)]

In[3]: dic

# dict在这里并没有做任何修改

Out[3]: {'k1': 1, 'k2': 3, 'k3': 2}

In[4]: sorted(dic.items())[0]

Out[4]: ('k1', 1)

回答:

字典是无序的,不能排序,
sorted只是排序 d 的 键值对 元组的列表。

回答:

sorted(zip(d.keys(), d.values())) 可解

回答:

因为dic是字典,是无序的,每次打印出来的结果可能都不相同

而sorted(dic.item())是对生成的元组('k1', 1), ('k2', 2), ('k3', 3)默认按每个元组的第一个值进行排序,所以打印结果为('k1', 1)

回答:

V=sorted(dic.items())这条语句后面不需要[0],因为sorted排序结果就是{['k1':1],['k2':2],['k3':3]},添加一句[0],相当于print的是V[0],所以结果就是['k1':1]

以上是 用sorted对字典排序,打印的结果为什么会是这样? 的全部内容, 来源链接: utcz.com/a/158533.html

回到顶部