【发布时间】:2017-07-14 12:29:11
【问题描述】:
我有一个清单
lis = [ [0, 1], [1, -1], [1, 0] ]
我想根据特定条件对其进行排序。我想使用一个逻辑,只要lis[i][0] 等于lis[i + 1][0],就交换元素。类似的东西
在上面的列表中,第二个和第三个元素是[1, -1] 和[1, 0],其中lis[i][0] == lis[i + 1][0]。所以我会交换它,这样我的新列表就变成了
lis = [ [0, 1], [1, 0], [1, -1] ]
这是我的功能:
def sortList(lis3):
for i in range(0, len(lis3) - 1):
for j in range(i + 1, len(lis3)):
if lis3[i][0] == lis3[j][0]:
lis3[i], lis3[j] = lis3[j], lis3[i]
我想将此函数传递给列表的sort 方法,使其按照以下逻辑排序:
我试过这样做,但没有用:
lis.sort(key=sortList)
如何使这个函数在sort 方法中工作?
【问题讨论】:
-
这与排序不同...排序必须是全局属性并且不直接依赖于邻居。 (这将如何与合并排序或其他排序算法一起工作?结果如何相同?python uses [timsort ])。
-
@hiroprotagonist 那么我可以用其他方法吗?
-
问题没有很好的定义...
lst = [(0,0), (0,1), (0,2)]:结果如何?您对列表的迭代次数和次数是多少?你什么时候做完?
标签: python list python-3.x sorting