的关键我有一个列表传递函数来排序功能
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)
^h我可以让这个功能在sort
方法中工作吗?
这与排序不一样...排序必须是全局属性,而不是直接依赖于邻居。 (如何使用合并排序?或其他排序算法?结果将如何?[python使用[timsort](https://en.wikipedia.org/wiki/Timsort)])。 –
@hiroprotagonist那么有没有另一种方法可以做到这一点? –
这个问题并没有很好的定义......'lst = [(0,0),(0,1),(0,2)]':结果是什么?您在列表中迭代的次数和次数?你什么时候完成? –