如何使用两个条件在 Python 中对列表进行排序?

ssdn

我有一个 Python 列表,我想根据两个类别进行排序。排序后的列表应该在最后一个位置具有最小的数字,并且第一个元素必须大于 400。我想从列表中返回前 3 个。

x_list = [['422', '324', '733443'], ['342', '654', '674335'], 
         ['953', '456', '828854'], ['345', '886', '446678'], 
         ['3224', '533', '654333'], ['7545', '5567', '369990']]

它应该像这样返回:

result = [['7545', '5567', '369990'], ['3224', '533', '654333'], ['422', '324', '733443']]

我尝试使用以下代码,但无法结合这两个条件对列表进行排序:

result= []
result += sorted(x_list, key=lambda x: int(x[-1]))[:3]

谁能帮我解决这个问题?非常感谢!!

rv.kvetch

我将首先过滤列表以仅保留第一个元素大于 400 的值,然后按照您最初的方式根据最后一个元素按升序对最终结果进行排序。例如:

x_list = [['422', '324', '733443'], ['342', '654', '674335'],
         ['953', '456', '828854'], ['345', '886', '446678'],
         ['3224', '533', '654333'], ['7545', '5567', '369990']]

x_list2 = [x for x in x_list if int(x[0]) > 400]
x_list2.sort(key=lambda x: int(x[2]))
x_list2 = x_list2[:3]

print(x_list2)
# [['7545', '5567', '369990'], ['3224', '533', '654333'], ['422', '324', '733443']]

或者您也可以在一个步骤中进行排序和过滤:

x_list = [['422', '324', '733443'], ['342', '654', '674335'],
         ['953', '456', '828854'], ['345', '886', '446678'],
         ['3224', '533', '654333'], ['7545', '5567', '369990']]

x_list2 = sorted((x for x in x_list if int(x[0]) > 400), key=lambda x: int(x[2]))[:3]

print(x_list2)
# [['7545', '5567', '369990'], ['3224', '533', '654333'], ['422', '324', '733443']]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用python中的列表在两个条件下进行循环

如何在python中对列表中的两个列表路径的字符串进行排序?

如何在python中循环使用两个条件?

使用两个条件对Python ZIP进行排序?

如何在Python中基于两个元素对列表进行排序?

如何基于python中的两个条件对数组进行排序

在Python中根据优先级的两个列表对多个列表进行排序

python使用条件对列表中的对象进行排序

如何在Python中对两个列表进行XOR?

如何使用 Python 从列表中对日期进行排序

如何使用python中的键对列表进行排序

如何在Python中的字典中对列表进行排序?

使用Python中的zip函数对2个相关列表进行排序,如何按降序排序?

Python:根据两个属性对列表进行排序

Python通过两个键值对JSON列表进行排序

如何使用冒泡排序对 Python 3 中的列表进行排序然后子排序

如何使用 Python 中的函数在两个列表之间进行过滤?

如何根据 Python 中的日期时间对字典列表进行排序

如何在python中对如此复杂的列表进行排序?

如何在 Python 中对字符串列表进行排序

如何在Python中对部分编号列表进行排序?

在python中对列表进行排序后如何获取原始索引

如何根据内容在Python中对列表进行重新排序

在python中,如何按元素的频率对列表进行排序

如何在python中按日期时间对列表进行排序?

如何在python中按顺序对列表进行排序?

如何以非降序对python中的列表进行排序?

如何对 Python3 中的复杂列表进行自然排序?

Python - 如何在列表中附加整数并进行排序?