Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在排序lambda中处理zip列表_Python_Sorting_Lambda - Fatal编程技术网

Python 如何在排序lambda中处理zip列表

Python 如何在排序lambda中处理zip列表,python,sorting,lambda,Python,Sorting,Lambda,我有一个具有两个属性的类,它们本身就是列表: class data...: list1 = [["g1", 2.0], ["x1", 3.0]...] # n elements list2 = [[2, 4, 5],[3, 2, 1]...] # n elements 我需要根据list2的第二个元素的值对两个列表进行压缩排序 zipped = zip(dataobj.list1, dataobj.list2) zipped.sort(cmp = lambda k: datao

我有一个具有两个属性的类,它们本身就是列表:

class data...:
    list1 = [["g1", 2.0], ["x1", 3.0]...] # n elements
    list2 = [[2, 4, 5],[3, 2, 1]...] # n elements
我需要根据
list2
的第二个元素的值对两个列表进行压缩排序

zipped = zip(dataobj.list1, dataobj.list2)
zipped.sort(cmp = lambda k: dataobj.list2[2])
这似乎不起作用

如何引用
dataobj.list2[2]
的第二个元素,因为这不起作用,并给了我以下错误:

TypeError: <lambda>() takes exactly 1 argument (2 given)
TypeError:()正好接受1个参数(给定2个)

cmp
应该是对比较两个值的函数的引用。相反,您需要更简单的东西-一个
字段

最简单的方法是直接从
zip
引用值,而不是返回到
list2
中的原始值。请注意,顺便说一句,python中的列表是基于零的,因此第二个元素是
[1]
,而不是
[2]
。长话短说:

zipped.sort(key = lambda k : k[1][1])

zipped.sort(key=lambda k:k[1][1])
?zipped.sort(key=lambda k:k[1])感谢您的评论。