这个问题看起来像另一个stackoverflow问题:Is it possible to sort two lists(which reference each other) in the exact same way?
对我来说,这个问题的解决方案不起作用。错误:TypeError: '<' not supported between instances of 'Card' and 'Card'
我有两个Python列表。列表1存储卡的发生次数。列表2存储卡对象。下面我将举一个例子。这些列表相互直接引用。名单已经根据卡片的等级进行了排序(从大到小,从A到D)
cardCountList = [1, 1, 3, 3, 2]
cardList = [aceCardObject, queenCardObject, tenCardObject, eightCardObject, deuceCardObject]
我想要的是根据cardCountList中的数字对两个列表进行排序。但重复数字的顺序必须保持不变。因此,最终结果应该是:
cardCountList = [3, 3, 2, 1, 1]
cardList = [tenCardObject, eightCardObject, deuceCardObject, aceCardObject, queenCardObject]
下面的代码给出了错误:
cardCountList, cardList = zip(*sorted(zip(cardCountList, cardList )))
cardCountList, cardList = (list(t) for t in zip(*sorted(zip(cardCountList, cardList ))))
您可以执行以下操作:
这会将两个列表拉到一起,按第一个元素对结果对进行排序,然后将它们重新打包
相关问题 更多 >
编程相关推荐