我有這個多的if/else在列表理解蟒蛇
s = ['son','abc','pro','bro']
b = ['son','bro']
c = ['pro','quo']
預期輸出是這樣的。如果輸出中的項目是index(item_in_s)
,如果它出現在列表b
中。或者index(item_in_s)+10
如果產品在c
[0,12,3]
我想這
index_list = [s.index(item) if item in b else s.index(item)+10 if item in c for item in s]
print(index)
但顯然這是一個語法錯誤。所以,我想這個
index_list = [s.index(item) if item in b else s.index(item)+10 for item in s if item in c]
print(index)
輸出:
[12]
這只是改變了整個邏輯。雖然我能做得到的本
fin = [s.index(item) if item in b else s.index(item)+10 if item in c else '' for item in s]
fin = [item for item in fin if item!='']
print(fin)
所需的輸出:
[0, 12, 3]
但如何獲得我想要的清單理解本身或者是有什麼樣else continue
在列表解析?任何解釋將不勝感激。
我真的不明白你在這裏做什麼。 – Sam
簡單地把像'[X,如果x在其他列表1 X + 10,如果x在列表2對於x在my_list]'這給一個語法錯誤。 – void
我想要的東西,像'[X,如果x在其他列表1 X + 10,如果x在其他list2中傳爲X在my_list]'但是我知道,通過給語法錯誤。任何替代品? – void