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()'将你的列表就地排序*作为副作用*(在术语的函数编程意义上),而不是返回一个排序列表。 –