python - 使用 sort(list, key=str.lower) 进行不区分大小写的排序

标签 python sorting case-insensitive

我设计了一个模块,允许用户输入 10 个单词,然后按字母顺序排列并显示它们。仅使用排序函数会将大写单词放在第一位,所以我使用了排序(列表,键= 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', 'Television', 'brotel', 'book', 'Dad', 'dog']

上次我学英语时,不是按字母顺序排列的 =p。我还需要在排序中添加或更改什么,以使其按正确的字母顺序显示,忽略单词是小写还是大写,只根据字母顺序排序?

土豚、书、妓院、可乐、爸爸、书 table 、狗、电视、活泼、活泼

最佳答案

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']

关于python - 使用 sort(list, key=str.lower) 进行不区分大小写的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20535495/

相关文章:

enums - JSON 模式枚举可以不区分大小写吗?

python - 根据条件分割 df 在 jupyter 中显示 nan 值

python - 哪个动态创建的对象调用了该函数?

python - 动态组装 scrapy GET 请求字符串

generics - 如何将 Dictionary<string, object> 的键转换为已排序的 string[]

git status 报告新克隆的 repo 中的修改文件

python - pyodbc:查询结果到 CSV?

java - collection.sort() 函数的效率如何?

javascript - 通过 Apple Automator 运行 Javascript 排序

php - MySQL 准备语句和区分大小写