[英]What is the difference between passing str.lower and str.upper as the key to list.sort?
[英]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.