Python中sorted()排序與字母大小寫的問(wèn)題
今天我在練習(xí)python時(shí),對(duì)字典里的鍵用sorted排序時(shí)發(fā)現(xiàn)并沒有按照預(yù)期排序
研究后發(fā)現(xiàn)字母大小寫會(huì)影響排序
首先創(chuàng)建一個(gè)字典,鍵里面的首字母有大寫有小寫
favorite_digit = { 'john' : 4, 'Tom' : 5, 'Lisa' : 9, 'liu' : 5, 'alice' : 0, } for name in sorted(favorite_digit.keys()): print(name.title())
運(yùn)行后發(fā)現(xiàn)與預(yù)期不符合。
Lisa
Tom
Alice
John
Liu
接著我不使用title函數(shù)又進(jìn)行排序
for name in sorted(favorite_digit.keys()): print(name)
運(yùn)行結(jié)果
Lisa
Tom
alice
john
liu
結(jié)果發(fā)現(xiàn),sorted先對(duì)首字母大寫進(jìn)行排序,然后才對(duì)小寫字母排序。正因?yàn)槲沂褂昧藅itle,使得排序看起來(lái)十分混亂。
為了避免此類情況的發(fā)生,我先創(chuàng)建一個(gè)空白字典將原先字典鍵小寫化儲(chǔ)存,然后遍歷原先的字典,將鍵轉(zhuǎn)化為小寫,同時(shí)將數(shù)據(jù)儲(chǔ)存在新的字典中。
favorite_digit_lower = {} #先創(chuàng)建一個(gè)字典將原先字典鍵小寫化儲(chǔ)存 for name, digit in favorite_digit.items(): name = name.lower() #然后遍歷原先的字典,將鍵轉(zhuǎn)化為小寫,同時(shí)將數(shù)據(jù)儲(chǔ)存在新的字典中 #print(name) #這里也可以加一個(gè)print檢查name是否成功寫入小寫 favorite_digit_lower [name] = digit #將原來(lái)字典的內(nèi)容復(fù)制到新字典里 for name in sorted(favorite_digit_lower.keys()): print(name.title()) #再次打印,結(jié)果為預(yù)期結(jié)果
打印結(jié)果
Alice
John
Lisa
Liu
Tom
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)矩陣轉(zhuǎn)置的方法分析
這篇文章主要介紹了Python實(shí)現(xiàn)矩陣轉(zhuǎn)置的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python實(shí)現(xiàn)矩陣轉(zhuǎn)置的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11用Python編寫一個(gè)簡(jiǎn)單的Lisp解釋器的教程
這篇文章主要介紹了用Python編寫一個(gè)簡(jiǎn)單的Lisp解釋器的教程,Lisp是一種源碼簡(jiǎn)單的函數(shù)式編程語(yǔ)言,本文主要介紹對(duì)其中的一個(gè)子集Scheme的解釋器開發(fā),需要的朋友可以參考下2015-04-04pyqt5 從本地選擇圖片 并顯示在label上的實(shí)例
今天小編就為大家分享一篇pyqt5 從本地選擇圖片 并顯示在label上的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06python os.path.isfile 的使用誤區(qū)詳解
今天小編就為大家分享一篇python os.path.isfile 的使用誤區(qū)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11