gpt4 book ai didi

python - 忽略大小写的字符串排序列表

转载 作者:IT老高 更新时间:2023-10-28 20:36:46 27 4
gpt4 key购买 nike

我有一个列表,其中包含代表动物名称的字符串。我需要对列表进行排序。如果我使用 sorted(list),它会先输出大写字符串,然后再输出小写。

但我需要下面的输出。

输入:

var = ['ant','bat','cat','Bat','Lion','Goat','Cat','Ant']

输出:

['ant', 'Ant', 'bat', 'Bat', 'cat', 'Cat', 'Goat', 'Lion']

最佳答案

sort() 方法和 sorted() 函数采用关键参数:

var.sort(key=lambda v: v.upper())

key中命名的函数对每个值调用,排序时使用返回值,不影响实际值:

>>> var=['ant','bat','cat','Bat','Lion','Goat','Cat','Ant']
>>> sorted(var, key=lambda v: v.upper())
['ant', 'Ant', 'bat', 'Bat', 'cat', 'Cat', 'Goat', 'Lion']

要将 Ant 排序在 ant 之前,您必须在键中包含更多信息,否则相等的值会按给定顺序排序:

>>> sorted(var, key=lambda v: (v.upper(), v[0].islower()))
['Ant', 'ant', 'Bat', 'bat', 'Cat', 'cat', 'Goat', 'Lion']

更复杂的键为Ant生成('ANT', False),为生成('ANT', True) > Ant ; True 排在 False 之后,因此大写单词排在其对应的小写字母之前。

Python sorting HOWTO了解更多信息。

关于python - 忽略大小写的字符串排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13954841/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com