python-3.x - 如何将包含 String 和 Int 的子列表排序为字符串
问题描述
我需要根据字符串形式的整数对列表进行排序,并且列表还包含字符串字母。
li = [['dr','3','mn'],['fs','1','a'],['2','rt',c]]
我需要这样的输出:
li = [['fs','1','a'],['2','rt',c],['dr','3','mn']]
或者
li = [[1,'fs','a'],[2,'rt',c],[3,'dr','mn']]
以任何类似的格式。
解决方案
此代码假设数字是整数,并且在每个列表中至少有一个数字:
li = [['11','rt','c'],['dr','3','mn'],['fs','1','a'],['2','rt','c']]
def is_number(s):
try:
i = int(s)
return True
except ValueError:
return False
print([li[i[-1]] for i in sorted([[int(j), ii] for ii, i in enumerate(li) for j in i if is_number(j)])])
印刷:
[['fs', '1', 'a'], ['2', 'rt', 'c'], ['dr', '3', 'mn'], ['11', 'rt', 'c']]
推荐阅读
- python - Python Snake 不长
- c# - CreateBatchWrite() 是否有批量大小限制
- javascript - 如何将多个 .filter() 方法与 .map() 方法一起应用?
- reporting-services - 在多值参数中选择两个选项但传递一个值
- php - 有没有办法从 Woocommerce 的订单中获取运输方式信息?
- javascript - 如何从 Promise 中访问特定元素
- java - 在GET响应Header中生成ETag Java spring解决412 http错误
- php - laravel 应用程序和 meilisearch 服务器之间的超时
- grpc-python - gRPC 服务器 request_iterator 未在循环中完成(以防 C# 客户端 Python Server)
- android - 如何在 TextView 中显示两个变量以及文本的添加