看板 Python 關於我們 聯絡資訊
請教各位神手~ 我有兩個list A:[a,b,c,d,e,f,g] B:[c,d,e] 想透過查找B內的元素在A的位置,但不用for迴圈有什麼高招嗎?取得:[2,3,4]還拜託各位高手教學了! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.22.147 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1561022313.A.6DF.html
KaMiRyuu: 轉set運算,結果在用list.index()找index 06/20 17:46
as30385438: 把A轉dict,key是值,value是index,這樣就是不用再 06/20 17:48
as30385438: 做O(N)的list.index了 06/20 17:48
wennie0433: set(A) & set(B) 06/20 19:03
liquidbox: set(A)&set(B)後取得交集後不是一樣要做迴圈嗎?不解 06/20 20:09
lemon651: 要iterate物件 卻又不用for loop 直接說無解吧 前面說 06/20 20:50
lemon651: 的哪個跟for loop不一樣意思哈哈 06/20 20:50
as30385438: 不一樣呀,轉成dict只要掃一遍,之後用hashing很快 06/20 21:44
as30385438: 一個是O(M+N),一個是O(M*N) 06/20 21:45
ides13: print(list(map(lambda x: A.index(x), B))) 06/20 21:54
ides13: map算是loop嗎? 06/20 21:54
jn8029: 要iterate 不要for 無解,不管你用啥招術 藏在下面的都會 06/21 06:24
jn8029: 有for. 轉成set有 轉成hash map也有 06/21 06:24
ides13: 確實,map = [a.index(x) for x in b],所以python不常使 06/21 21:11
ides13: 用map的語法。 06/21 21:12
kif1205: 用while 06/22 00:11
JeanSijhih: 何不用 find ? 07/20 14:10