1
我試圖讓一對夫婦值;那對夫婦由i
和j
組成;它們之間的加法可以是N
或N+1
。我想要一個滿足條件的數字列表。 例如,如果N = 3,那麼我需要這樣的輸出:排序()不與列表解析工作
>>> [ [1,2], [2,2] ]
到目前爲止我的代碼是:
N = 3
answer = []
answer = [(i,j) for i in range (1,N) for j in range(1,N) if [i,j].sort() not in answer and i+j == N or i+j == N+1 ]
print(answer)
但是當我運行此,收到這個輸出:
>>> [ [1,2] , [2,1], [2,2] ]
其中嵌套列表(couple)[2,1]是一個repetead元素。爲什麼排序不在這個代碼中工作?
只是說不能取決於副作用。 –
我不明白@CharlesDuffy,你說「沒有視副作用而定」是什麼意思;如果你可以在代碼中給出一些例子,它將是有用的。 – Alexis
'list.sort()'將你的列表就地排序*作爲副作用*(在術語的函數編程意義上),而不是返回一個排序列表。 –