python按字母对列表排序

2024-06-28 12:16:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图按字母顺序对列表进行排序,但是前面的值包含x。你知道吗

def front_x(words):
    r = words
    s = []
    o = []
    for x in r:
        if "x" in x:
            s.append(x)
        else:
            o.append(x)
    return sorted(s,key = lambda f:f.find("x")) + sorted(o)

front_x(['bbb', 'ccc', 'axx', 'xzz', 'xaa']) 

它当前返回['xzz', 'xaa', 'axx', 'bbb', 'ccc']

我想让它返回['xaa', 'xzz', 'axx', 'bbb', 'ccc']


Tags: in列表排序顺序def字母wordsfront
1条回答
网友
1楼 · 发布于 2024-06-28 12:16:51

您应该能够通过sorted函数来实现这一点。你知道吗

试试这样的东西

s = ['bbb', 'ccc', 'axx', 'xzz', 'xaa']
sorted(s, lambda w: ("x" in w, w))

这会将包含“x”的值排序到前面,然后再按字母顺序排序。你知道吗

如果您只想对前面以“x”开头的值进行排序(我不确定您的问题),那么您需要稍微调整它

sorted(s, lambda w: ("x" == w[:1], w))

如果我还不太明白你的意思,请告诉我。你知道吗

相关问题 更多 >