的關鍵我有一個列表傳遞函數來排序功能
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)]':結果是什麼?您在列表中迭代的次數和次數?你什麼時候完成? –