python - 用sorted对字典排序,打印的结果为什么会是这样?
巴扎黑
巴扎黑 2017-04-18 09:41:00
0
4
332

巴扎黑
巴扎黑

membalas semua(4)
Ty80
# 你新建了一个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)
刘奇

Kamus tidak tersusun dan tidak boleh diisih
diisih hanyalah senarai tuple pasangan nilai kunci yang diisih d.

迷茫

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

刘奇

Oleh kerana dic ialah kamus dan tidak tersusun, hasil yang dicetak mungkin berbeza setiap kali

Dan diisih(dic.item()) adalah untuk mengisih tupel yang dijana ('k1', 1), ('k2', 2), ('k3', 3) secara lalai mengikut yang pertama setiap satu tuple. Isih mengikut nilai, jadi hasil cetakan ialah ('k1', 1)

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan