Python中sorted()排序與字母大小寫的問題
今天我在練習(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,使得排序看起來十分混亂。
為了避免此類情況的發(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 #將原來字典的內(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)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于python+opencv調(diào)用電腦攝像頭實(shí)現(xiàn)實(shí)時(shí)人臉眼睛以及微笑識(shí)別
這篇文章主要為大家詳細(xì)介紹了基于python+opencv調(diào)用電腦攝像頭實(shí)現(xiàn)實(shí)時(shí)人臉眼睛以及微笑識(shí)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Python?for循環(huán)詳細(xì)講解(附代碼實(shí)例)
這篇文章主要給大家介紹了關(guān)于Python?for循環(huán)詳細(xì)講解的相關(guān)資料,在Python中,for循環(huán)是一種常用的控制結(jié)構(gòu),用于遍歷序列(如列表、元組、字符串等)中的元素,需要的朋友可以參考下2024-03-03
python實(shí)現(xiàn)獲取客戶機(jī)上指定文件并傳輸?shù)椒?wù)器的方法
這篇文章主要介紹了python實(shí)現(xiàn)獲取客戶機(jī)上指定文件并傳輸?shù)椒?wù)器的方法,涉及Python實(shí)現(xiàn)C/S架構(gòu)程序與socket程序的使用技巧,需要的朋友可以參考下2015-03-03
python如何對(duì)實(shí)例屬性進(jìn)行類型檢查
這篇文章主要為大家詳細(xì)介紹了python如何對(duì)實(shí)例屬性進(jìn)行類型檢查,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
詳解pyqt5 動(dòng)畫在QThread線程中無法運(yùn)行問題
這篇文章主要介紹了詳解pyqt5 動(dòng)畫在QThread線程中無法運(yùn)行問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
python合并RepeatMasker預(yù)測(cè)結(jié)果中染色體的overlap區(qū)域
這篇文章主要為大家介紹了python合并RepeatMasker預(yù)測(cè)結(jié)果中染色體的overlap區(qū)域?qū)崿F(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
100行Python代碼實(shí)現(xiàn)自動(dòng)搶火車票(附源碼)
又到年底了,相信對(duì)于在外地的朋友們來說,火車票是到年底最頭痛的一件事了,但作為程序員的你怎么能一樣呢?快發(fā)揮你的特長,下面這篇文章主要給大家介紹了如果通過100行Python代碼實(shí)現(xiàn)自動(dòng)搶火車票的相關(guān)資料,需要的朋友可以參考下。2018-01-01
Python+flask實(shí)現(xiàn)restful接口的示例詳解
這篇文章主要為大家詳細(xì)介紹了Python如何利用flask實(shí)現(xiàn)restful接口,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2023-02-02
教你學(xué)會(huì)通過python的matplotlib庫繪圖
今天教大家如何學(xué)會(huì)通過python的matplotlib庫繪圖,文中有非常詳細(xì)的圖文解說及代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05

