我有一个列表,里面有多个列表。主列表中的列表包含字符串和整数。列表看起来像这样:
-march=haswell
列表中的第一个对象是特定玩家的名字。
我现在想将小列表中的所有整数加在一起,并首先对具有最大和的列表进行排序,但是当它也包含字符串时,我不知道该怎么做。此外,我希望名称仍然是列表中的第一个字符串。列表中的数据必须与开始时的顺序相同,但它们在主列表中的排列顺序必须是按值排列
我希望这是有道理的,并且有人可以帮助我:)
答案 0 :(得分:0)
将sorted
与lambda
一起使用,按满足条件sum
的子列表中int
的项的isdigit()
的{{1}}排序,使用{{1 }}首先显示最大的子列表
reverse=True
答案 1 :(得分:0)
您可以查明字符串是否为数字:
"2".isnumeric()
# >>True
"hello".isnumeric()
# >>False
您可以通过使用列表理解仅选择数字字符串来创建内部列表的子列表
sub_inner_list = [i for i in inner_list if i.isnumeric()]
您还可以在同一步骤中将这些条目转换为整数并求和。
sum_sub_inner_list = sum([int(i) for i in inner_list if i.isnumeric()])
这可以用作对外部列表进行排序的键,传入reversed = True选项可以首先按最大值进行排序。
my_sorted_list = sorted(full_list, reverse=True, key=lambda inner: sum([int(i) for i in inner if i.isnumeric()]))