需要帮助使用python做一个包含数字的字符串排序吗

需要帮助使用python做一个包含数字的字符串排序吗,python,sorting,Python,Sorting,我对发展一无所知。我遇到了一个场景,需要对下面的列表进行排序。列表中的每个元素都由“text:number”组成。结构总是一样的。有没有办法让系统读取“:”后面的数字并对其进行排序?数字可能是两位或三位数字,因此仅按最后一位数字排序不是一个好主意 List:['job: 2', 'descript: 11', 'noc: 7', 'engin: 6', 'network: 28', 'network: 28', 'oper: 2', 'centr: 16', 'three: 1', 'main:

我对发展一无所知。我遇到了一个场景,需要对下面的列表进行排序。列表中的每个元素都由“text:number”组成。结构总是一样的。有没有办法让系统读取“:”后面的数字并对其进行排序?数字可能是两位或三位数字,因此仅按最后一位数字排序不是一个好主意

List:['job: 2', 'descript: 11', 'noc: 7', 'engin: 6', 'network: 28', 'network: 28', 'oper: 2', 'centr: 16', 'three: 1', 'main: 1']
您可以使用sortedmy_list并传递lambda函数作为关键字参数。lambda函数描述排序逻辑的确切行为

>>> my_list = ['job: 2', 'descript: 11', 'noc: 7', 'engin: 6', 'network: 28', 'network: 28', 'oper: 2', 'centr: 16', 'three: 1', 'main: 1']
>>> my_sorted_list = sorted(my_list, key=lambda x: int(x.split(':')[-1].strip()))
>>> my_sorted_list
['three: 1', 'main: 1', 'job: 2', 'oper: 2', 'engin: 6', 'noc: 7', 'descript: 11', 'centr: 16', 'network: 28', 'network: 28']
这个lambda基本上说:

对于my_列表中的每个元素x: 将已知为字符串的x拆分为以下位置的列表: 从该列表中选择最后一个元素 删除此元素周围的空白 将其转换为整数 使用此结果值对我的_列表进行排序。
如果要从高到低排序,请将reverse=True作为另一个关键字参数传递给sorted。

看起来您的列表一直都想成为字典。堆栈溢出不是代码编写服务。你已经试过什么了?请阅读参考Hanks jfaccioni的快速回复和解释!这确实解决了我今晚一直在处理的问题。竖起大拇指