我有一个字符串列表,格式如下:
['variable1 (name1)', 'variable2 (name2)', 'variable3 (name3)', ...]
...我想根据 (nameX)
部分按字母顺序对列表进行排序。我该怎么做呢?
最佳答案
要更改排序键,请使用 the key
parameter :
>>>s = ['variable1 (name3)', 'variable2 (name2)', 'variable3 (name1)']
>>> s.sort(key = lambda x: x.split()[1])
>>> s
['variable3 (name1)', 'variable2 (name2)', 'variable1 (name3)']
>>>
与 sorted
的工作方式相同:
>>>s = ['variable1 (name3)', 'variable2 (name2)', 'variable3 (name1)']
>>> sorted(s)
['variable1 (name3)', 'variable2 (name2)', 'variable3 (name1)']
>>> sorted(s, key = lambda x: x.split()[1])
['variable3 (name1)', 'variable2 (name2)', 'variable1 (name3)']
>>>
请注意,如问题中所述,这将按字母顺序排序,因此对于 2 位数字的组件,它不会将它们解释为数字,例如“11”将排在“2”之前。
关于python - 按字符串的一部分对字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21431052/