簡體   English   中英

使用sort進行不區分大小寫的排序(list,key = str.lower)

[英]Case insensitive sorting with sort(list, key=str.lower)

我有一個模塊,允許用戶輸入10個單詞,然后按字母順序排列,然后顯示它們。 只使用排序函數首先放大寫單詞,所以我使用sort(list,key = str.lower)但輸出仍然不正確。 代碼和錯誤,如下:

def words_function():

    words = [input("Enter 10 words, one at a time: ") for i in range(10)]
    sorted(words, key=str.lower)
    print("Alphabetized, your words are: ", words)

    userSearch = input("What word would you like to search for?")

    if userSearch in words:
        print("Found!")
    else:
        print("Not Found!")     

words_function()

它輸出了這個順序:['Aardvark','coke','Desk','Zippy','zappy','電視','妓院','書','爸爸','狗']

上次我拿英語時,不是按字母順序= p。 我還需要添加什么來改變我的排序或更改,使其按正確的字母順序排列,忽略單詞是小寫還是大寫,只是根據字母順序排序?

土豚,書,妓院,可樂,爸爸,桌子,狗,電視,zappy,Zippy

sorted 返回排序列表。 它不會修改列表。 您必須將排序列表存儲在某處

words = sorted(words, key=str.lower)

在python 2.6上

>>> words= ['Aardvark', 'coke', 'Desk', 'Zippy', 'zappy', 'Television', 'brothel', 'book', 'Dad', 'dog']
>>> sorted(words,key=str.lower)
['Aardvark', 'book', 'brothel', 'coke', 'Dad', 'Desk', 'dog', 'Television', 'zappy', 'Zippy']
>>> words
['Aardvark', 'coke', 'Desk', 'Zippy', 'zappy', 'Television', 'brothel', 'book', 'Dad', 'dog']
>>> words = sorted(words,key=str.lower)
>>> words
['Aardvark', 'book', 'brothel', 'coke', 'Dad', 'Desk', 'dog', 'Television', 'zappy', 'Zippy']
sorted(words, key=cmp_to_key(locale.strcoll))

你可以使用方法(內置列表)

list.sort()    

它排序和更改列表

已排序(words,key = str.lower)

這不會改變單詞分配,此時單詞沒有改變。 但'words.sort(key = str.lower)'直接更改分配。 但即使你再次對列表進行了排序也很有趣。 該列表並非完全按字母順序排列,

例。

words = ['Aardvark','coke','Desk','Zippy','zappy','電視','妓院','書','爸爸','狗']

sort(words,key = str.lower)['Aardvark','book','brothel','coke','Dad','Desk','dog','Television','zappy','Zippy' ]

你可以看到'狗'在'桌子'之后

另一個例子。

words = ['a','b','c','d','E','F','A','B','b','A']

words.sort(key = str.lower)

['a','A','A','b','B','b','c','d','E','F']

.sort(key = str.lower)並不意味着正確地按正則字母順序對值進行排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM