按字母顺序排序列表,特殊情况下的某些起始字母

Guy*_*Guy 3 python sorting list

给定一个字符串列表,我想以排序的顺序返回一个包含字符串的列表,除了将所有以'x'开头的字符串分组.

例如:

['mix', 'xyz', 'apple', 'xanadu', 'aardvark']
Run Code Online (Sandbox Code Playgroud)

应该产量:

['xanadu', 'xyz', 'aardvark', 'apple', 'mix']
Run Code Online (Sandbox Code Playgroud)

我知道可以通过制作2个列表并在组合之前对每个列表进行排序来完成,但我不确定如何编写'x'是第一个字符的条件.

fal*_*tru 7

sortedlist.sort接受可选的key关键字参数.这是用于获取排序键的函数,函数的返回值用于比较而不是原始项.

>>> words = ['mix', 'xyz', 'apple', 'xanadu', 'aardvark']
>>> sorted(words, key=lambda word: (word[0] != 'x', word))
['xanadu', 'xyz', 'aardvark', 'apple', 'mix']
Run Code Online (Sandbox Code Playgroud)

用过word[0] != 'x'; False对于单词的返回(0)开始x,True对于其他单词,返回(1); 结果词首先x出现.