Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:按字母顺序对列表排序,但所有小写字母优先于大写字母_Python_Sorting - Fatal编程技术网

Python:按字母顺序对列表排序,但所有小写字母优先于大写字母

Python:按字母顺序对列表排序,但所有小写字母优先于大写字母,python,sorting,Python,Sorting,我有一个由单个数字(0-9)和单个字母(aA-zZ)组成的列表,它们表示为字符串。我想分类 此列表在排序时如下所示: ['0',..'1',..'2',..'a',..'b',..'c',....'z', 'A',.. 'B',.. 'C'.., 'Z'] 到目前为止,我见过的每一种排序方法都将字母配对在一起,使“A”跟在“A”后面,以此类推。有没有办法对列表进行排序,使大写字母的优先级最低?您可以使用排序或排序的键参数来定义您喜欢的排序类型。例如: >>> s = "12

我有一个由单个数字(0-9)和单个字母(aA-zZ)组成的列表,它们表示为字符串。我想分类 此列表在排序时如下所示:

['0',..'1',..'2',..'a',..'b',..'c',....'z', 'A',.. 'B',.. 'C'.., 'Z'] 

到目前为止,我见过的每一种排序方法都将字母配对在一起,使“A”跟在“A”后面,以此类推。有没有办法对列表进行排序,使大写字母的优先级最低?

您可以使用
排序
排序
参数来定义您喜欢的排序类型。例如:

>>> s = "123ABCabc"
>>> print sorted(s, key=lambda c: c.lower() if c.isupper() else c.upper())
['1', '2', '3', 'a', 'b', 'c', 'A', 'B', 'C']

在这里,如果一个字母是小写,为了排序的目的,我们把它当作大写,反之亦然。不带大小写的字符(如数字)不变。

列表中实际有什么?它们都是字符串吗?是的,列表实际上都是字符串,我将编辑我的帖子来反映这一点。
print(sorted(s,key=lambda x:x.isupper())
?噢,这是一种非常简洁的方法。它还表明lambda的返回值不限于字符串。它可以是布尔值或整数,等等