2024-10-03 19:26:46 发布
网友
我有一个字符串列表,其格式如下:
['variable1 (name1)', 'variable2 (name2)', 'variable3 (name3)', ...]
。。。我想根据(nameX)部分按字母顺序对列表进行排序。我该怎么做呢?
(nameX)
要更改排序键,请使用the ^{} parameter:
>>>s = ['variable1 (name3)', 'variable2 (name2)', 'variable3 (name1)'] >>> s.sort(key = lambda x: x.split()[1]) >>> s ['variable3 (name1)', 'variable2 (name2)', 'variable1 (name3)'] >>>
与^{}的工作方式相同:
>>>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)'] >>>
注意,如问题中所述,这将是一个字母排序,因此对于两位数的组件,它不会将它们解释为数字,例如,“11”将在“2”之前。
您可以使用regex进行以下操作:
>>> import re >>> r = re.compile(r'\((name\d+)\)') >>> lis = ['variable1 (name1)', 'variable3 (name3)', 'variable2 (name100)'] >>> sorted(lis, key=lambda x:r.search(x).group(1)) ['variable1 (name1)', 'variable2 (name100)', 'variable3 (name3)']
注意,上面的代码将在name3之前返回类似name100的内容,如果这不是您想要的,则需要执行以下操作:
name3
name100
>>> r = re.compile(r'\(name(\d+)\)') def key_func(m): return int(r.search(m).group(1)) >>> sorted(lis, key=key_func) ['variable1 (name1)', 'variable3 (name3)', 'variable2 (name100)']
只需使用sort方法的key参数。
sort
key
test.sort(key = lambda x: x.split("(")[1])
祝你好运!
编辑:test是数组。
test
要更改排序键,请使用the ^{} parameter :
与^{} 的工作方式相同:
注意,如问题中所述,这将是一个字母排序,因此对于两位数的组件,它不会将它们解释为数字,例如,“11”将在“2”之前。
您可以使用regex进行以下操作:
注意,上面的代码将在
name3
之前返回类似name100
的内容,如果这不是您想要的,则需要执行以下操作:只需使用
sort
方法的key
参数。祝你好运!
编辑:
test
是数组。相关问题 更多 >
编程相关推荐