gpt4 book ai didi

python - 按排序顺序排列的字符串,除了首先将所有以 'x' 开头的字符串分组

转载 作者:太空狗 更新时间:2023-10-30 00:30:52 25 4
gpt4 key购买 nike

给定一个字符串列表,返回一个按排序顺序排列的列表,除了首先将所有以 'x' 开头的字符串分组。

例如

['mix', 'xyz', 'apple', 'xanadu', 'aardvark']

产量

['xanadu', 'xyz', 'aardvark', 'apple', 'mix']

a=['bbb', 'ccc', 'axx', 'xzz', 'xaa']
a1=['mix', 'xyz','apple', 'xanadu', 'aardvark','xz']
xlist=[]
def sort(s):
for i in s:
if i[0]=='x':
xlist.append(i)
s.remove(i)
print sorted(xlist)+sorted(s)
del xlist[:]

sort(a)
sort(a1)

只要以 x 开头的两个列表元素不在一起,此代码就可以工作。即我得到列表 a1 的正确输出但不是 a 你能帮我理解为什么吗!


获得输出。

['xzz', 'axx', 'bbb', 'ccc', 'xaa']
['xanadu', 'xyz', 'xz', 'aardvark', 'apple', 'mix']

最佳答案

您可以使用带有两个键的sortedlist.sort:

l = ['mix', 'xyz', 'apple', 'xanadu', 'aardvark']
sorted(l, key=lambda x: (not x.startswith('x'), x))
['xanadu', 'xyz', 'aardvark', 'apple', 'mix']

其中 not x.startswith('x') 返回 bool,它首先在 False 中排序。因此,not x.startswith('x') 获取以 'x' 开头的字符串并将它们带到前面。

关于python - 按排序顺序排列的字符串,除了首先将所有以 'x' 开头的字符串分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54941880/

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