python按字母排序列表

时间:2017-11-02 22:03:23

标签: python python-3.x sorting

我正在尝试按字母顺序对列表进行排序 - 但前面的值包含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']

1 个答案:

答案 0 :(得分:0)

您应该只使用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))

如果我还没有完全明白你所追求的是什么,请告诉我。