[問題] list 比對查找

看板Python作者 (RT-boy)時間6年前 (2019/06/20 17:18), 編輯推噓9(908)
留言17則, 9人參與, 6年前最新討論串1/2 (看更多)
請教各位神手~ 我有兩個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

06/20 17:46, 6年前 , 1F
轉set運算,結果在用list.index()找index
06/20 17:46, 1F

06/20 17:48, 6年前 , 2F
把A轉dict,key是值,value是index,這樣就是不用再
06/20 17:48, 2F

06/20 17:48, 6年前 , 3F
做O(N)的list.index了
06/20 17:48, 3F

06/20 19:03, 6年前 , 4F
set(A) & set(B)
06/20 19:03, 4F

06/20 20:09, 6年前 , 5F
set(A)&set(B)後取得交集後不是一樣要做迴圈嗎?不解
06/20 20:09, 5F

06/20 20:50, 6年前 , 6F
要iterate物件 卻又不用for loop 直接說無解吧 前面說
06/20 20:50, 6F

06/20 20:50, 6年前 , 7F
的哪個跟for loop不一樣意思哈哈
06/20 20:50, 7F

06/20 21:44, 6年前 , 8F
不一樣呀,轉成dict只要掃一遍,之後用hashing很快
06/20 21:44, 8F

06/20 21:45, 6年前 , 9F
一個是O(M+N),一個是O(M*N)
06/20 21:45, 9F

06/20 21:54, 6年前 , 10F
print(list(map(lambda x: A.index(x), B)))
06/20 21:54, 10F

06/20 21:54, 6年前 , 11F
map算是loop嗎?
06/20 21:54, 11F

06/21 06:24, 6年前 , 12F
要iterate 不要for 無解,不管你用啥招術 藏在下面的都會
06/21 06:24, 12F

06/21 06:24, 6年前 , 13F
有for. 轉成set有 轉成hash map也有
06/21 06:24, 13F

06/21 21:11, 6年前 , 14F
確實,map = [a.index(x) for x in b],所以python不常使
06/21 21:11, 14F

06/21 21:12, 6年前 , 15F
用map的語法。
06/21 21:12, 15F

06/22 00:11, 6年前 , 16F
用while
06/22 00:11, 16F

07/20 14:10, 6年前 , 17F
何不用 find ?
07/20 14:10, 17F
文章代碼(AID): #1T2qzfRV (Python)
文章代碼(AID): #1T2qzfRV (Python)