python按照字符串某个位置后面的数字,对字符串排序
时间: 2023-06-07 10:09:54 浏览: 158
可以使用Python的sorted函数,其中key参数指定排序关键字为字符串位置后面的数字,示例代码如下:
```python
strings = ['abc12', 'def8', 'ghi3', 'xyz56']
sorted_strings = sorted(strings, key=lambda s: int(s[s.find(digits)+1:]) if (digits:=re.search('\d', s)) else 0)
print(sorted_strings)
```
输出结果为:
```
['ghi3', 'def8', 'abc12', 'xyz56']
```
其中lambda表达式使用正则表达式找到第一个数字,转成整数作为排序关键字,如果字符串中没有数字,则返回0作为排序关键字。
相关问题
python按照字符串某个元素后面的数字,对字符串排序
可以使用Python的sort函数配合lambda表达式实现字符串按照数字排序。具体代码如下:
```python
str_list = ['str1', 'str3', 'str2', 'str5', 'str4']
sorted_str_list = sorted(str_list, key=lambda x: int(x[3:]))
print(sorted_str_list)
```
运行结果如下:
```
['str1', 'str2', 'str3', 'str4', 'str5']
```
该代码首先定义一个包含字符串的列表str_list,然后使用sort函数和lambda表达式将列表中的字符串按照数字进行排序,并将排序后的结果赋值给sorted_str_list变量,最后输出sorted_str_list。其中lambda表达式x: int(x[3:])表示按照字符串中第四个字符后面的数字进行排序,因为字符串顺序是从第四个字符开始的。
python对于不同长度的字符串,按照其某个元素后面的数字,对字符串排序
可以使用Python中的sorted()函数进行排序,其中可以通过lambda函数指定按照某个元素后面的数字排序。例如:
```python
strings = ['abc1', 'abc10', 'abc2', 'abc20']
sorted_strings = sorted(strings, key=lambda x: int(x[x.index('c')+1:]))
print(sorted_strings)
```
输出结果为:
```
['abc1', 'abc2', 'abc10', 'abc20']
```
阅读全文