我如何排序代表元组的字符串列表?

我有一个代表元组的字符串列表,像这样:

['(q2,0)', '(q3,0)', '(q0,0)', '(q1,0)', '(q4,0)']

是否有任何方法可以通过访问每个q之后的数字来对其进行排序,因此列表如下所示:

[ '(q0,0)', '(q1,0)', '(q2,0)', '(q3,0)', '(q4,0)']

如果这些是整数,那将很容易,但是我需要保持字符串格式不变,因为它们现在是…

解决方法:

您可以根据定义的键进行排序:

def my_key(value):
    return int(value.strip('()').split(',')[0][1:])

用法:

>>> values = ['(q2,0)', '(q3,0)', '(q0,0)', '(q1,0)', '(q4,0)']
>>> values.sort(key=my_key)
['(q0,0)', '(q1,0)', '(q2,0)', '(q3,0)', '(q4,0)']
上一篇:python – str.startswith如何真正起作用?


下一篇:python-将字符串元组转换为元组