我有一个类,它有两个属性,它们本身就是列表:
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)
cmp
应该是对比较两个值的函数的引用。相反,您需要更简单的东西—一个key
字段。你知道吗最简单的方法是直接从
zipped
引用值,而不是返回到list2
中的原始值。注意,顺便说一句,python中的列表是基于零的,因此第二个元素应该是[1]
,而不是[2]
。长话短说:相关问题 更多 >
编程相关推荐