我對Python很陌生。 作爲我的代碼的一部分,我需要一個函數,檢查列表中的元素,並忽略它,如果每個元素與之前/之間的差異恰好爲1的差異。例如:如何在此處檢查列表中的元素
[1,2,5 10]是無效
[9,14,19,18]無效
[3,6,9,20]爲有效
這裏是我的代碼:
def code(self):
for line,lists in enumerate(permutations(range(4))):
valid_list = []
for index,elements in enumerate(lists) :
if index != len(lists)-1: #list index out of range escape condition
if lists[index] - lists[index+1] == 1 or lists[index+1] - lists[index] == 1 :
break
valid_list.append(lists)
return good_items
所以我 想要檢查「排列列表」的元素,如果它們是好的,將該列表追加到「valid_list」作爲最終返回,但我努力這樣做。我不知道應該在哪裏放置valid_list.append(lists)當我確定了所有3個元素(最後一個不需要)時,它會被追加。
我將不勝感激一些幫助:3
P.S:所以這裏的東西,我知道該算法是可怕的,實際的代碼是一樣糟糕,我只是想知道如何使它發揮作用。 改進代碼的建議廣泛讚賞,但不完全是我正在尋找的:3
你的問題是什麼?如何檢查你正在描述的條件,如何追加到列表或如何使用描述性名稱'code'修復該函數? – timgeb
@timgeb 我無法得到預期的結果。從排列函數中生成了24個列表,其中2個符合我的條件: [1,3,0,2]和[2,0,3, 1] 但是當我運行這個代碼時,我得到一個空的列表,或[3,2,1,0](迭代結束時的最後一個列表),這兩個顯然都不是答案。 我想知道如何解決這個問題。 –