1. 程式人生 > 程式設計 >Python中sorted()排序與字母大小寫的問題

Python中sorted()排序與字母大小寫的問題

今天我在練習python時,對字典裡的鍵用sorted排序時發現並沒有按照預期排序

研究後發現字母大小寫會影響排序

首先建立一個字典,鍵裡面的首字母有大寫有小寫

favorite_digit = {
    'john' : 4,'Tom' : 5,'Lisa' : 9,'liu' : 5,'alice' : 0,}
for name in sorted(favorite_digit.keys()):
  print(name.title())

執行後發現與預期不符合。

Lisa
Tom
Alice
John
Liu

接著我不使用title函式又進行排序

for name in sorted(favorite_digit.keys()):
  print(name)

執行結果

Lisa
Tom
alice
john
liu

結果發現,sorted先對首字母大寫進行排序,然後才對小寫字母排序。正因為我使用了title,使得排序看起來十分混亂。

為了避免此類情況的發生,我先建立一個空白字典將原先字典鍵小寫化儲存,然後遍歷原先的字典,將鍵轉化為小寫,同時將資料儲存在新的字典中。

favorite_digit_lower = {}  #先建立一個字典將原先字典鍵小寫化儲存

for name,digit in favorite_digit.items():
  name = name.lower() #然後遍歷原先的字典,將鍵轉化為小寫,同時將資料儲存在新的字典中
  #print(name) #這裡也可以加一個print檢查name是否成功寫入小寫
  favorite_digit_lower [name] = digit #將原來字典的內容複製到新字典裡
for name in sorted(favorite_digit_lower.keys()):
  print(name.title()) #再次列印,結果為預期結果

列印結果

Alice
John
Lisa
Liu
Tom

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。