Python中sorted()排序與字母大小寫的問題
今天我在練習(xí)python時,對字典里的鍵用sorted排序時發(fā)現(xiàn)并沒有按照預(yù)期排序
研究后發(fā)現(xiàn)字母大小寫會影響排序
首先創(chuàng)建一個字典,鍵里面的首字母有大寫有小寫
favorite_digit = {
'john' : 4,
'Tom' : 5,
'Lisa' : 9,
'liu' : 5,
'alice' : 0,
}
for name in sorted(favorite_digit.keys()):
print(name.title())
運行后發(fā)現(xiàn)與預(yù)期不符合。
Lisa
Tom
Alice
John
Liu
接著我不使用title函數(shù)又進(jìn)行排序
for name in sorted(favorite_digit.keys()): print(name)
運行結(jié)果
Lisa
Tom
alice
john
liu
結(jié)果發(fā)現(xiàn),sorted先對首字母大寫進(jìn)行排序,然后才對小寫字母排序。正因為我使用了title,使得排序看起來十分混亂。
為了避免此類情況的發(fā)生,我先創(chuàng)建一個空白字典將原先字典鍵小寫化儲存,然后遍歷原先的字典,將鍵轉(zhuǎn)化為小寫,同時將數(shù)據(jù)儲存在新的字典中。
favorite_digit_lower = {} #先創(chuàng)建一個字典將原先字典鍵小寫化儲存
for name, digit in favorite_digit.items():
name = name.lower() #然后遍歷原先的字典,將鍵轉(zhuǎn)化為小寫,同時將數(shù)據(jù)儲存在新的字典中
#print(name) #這里也可以加一個print檢查name是否成功寫入小寫
favorite_digit_lower [name] = digit #將原來字典的內(nèi)容復(fù)制到新字典里
for name in sorted(favorite_digit_lower.keys()):
print(name.title()) #再次打印,結(jié)果為預(yù)期結(jié)果
打印結(jié)果
Alice
John
Lisa
Liu
Tom
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
OpenCV?圖像分割實現(xiàn)Kmean聚類的示例代碼
本文主要介紹了OpenCV?圖像分割實現(xiàn)Kmean聚類的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
超詳細(xì)PyTorch實現(xiàn)手寫數(shù)字識別器的示例代碼
這篇文章主要介紹了超詳細(xì)PyTorch實現(xiàn)手寫數(shù)字識別器的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Tensorflow加載預(yù)訓(xùn)練模型和保存模型的實例
今天小編就為大家分享一篇Tensorflow加載預(yù)訓(xùn)練模型和保存模型的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
python實現(xiàn)給scatter設(shè)置顏色漸變條colorbar的方法
今天小編就為大家分享一篇python實現(xiàn)給scatter設(shè)置顏色漸變條colorbar的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python使用matplotlib繪制圖片時x軸的刻度處理
在使用matplotlib繪制圖片時,x軸的刻度可能比較密集,特別是以日期作為x軸時,則最后會顯示不出來。這篇文章主要介紹了python使用matplotlib繪制圖片時x軸的刻度處理,需要的朋友可以參考下2021-08-08

