我需要根据字符串形式的整数对列表进行排序,并且列表还包含st字母。
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']]
采用任何此类格式。
答案 0 :(得分:1)
此代码假设数字是整数,并且每个列表中至少有一个数字:
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']]