作者momo123163 (RT-boy)
看板Python
标题[问题] list 比对查找
时间Thu Jun 20 17:18:31 2019
请教各位神手~
我有两个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://webptt.com/cn.aspx?n=bbs/Python/M.1561022313.A.6DF.html
1F:推 KaMiRyuu: 转set运算,结果在用list.index()找index 06/20 17:46
2F:推 as30385438: 把A转dict,key是值,value是index,这样就是不用再 06/20 17:48
3F:→ as30385438: 做O(N)的list.index了 06/20 17:48
4F:推 wennie0433: set(A) & set(B) 06/20 19:03
5F:→ liquidbox: set(A)&set(B)後取得交集後不是一样要做回圈吗?不解 06/20 20:09
6F:推 lemon651: 要iterate物件 却又不用for loop 直接说无解吧 前面说 06/20 20:50
7F:→ lemon651: 的哪个跟for loop不一样意思哈哈 06/20 20:50
8F:推 as30385438: 不一样呀,转成dict只要扫一遍,之後用hashing很快 06/20 21:44
9F:→ as30385438: 一个是O(M+N),一个是O(M*N) 06/20 21:45
10F:推 ides13: print(list(map(lambda x: A.index(x), B))) 06/20 21:54
11F:→ ides13: map算是loop吗? 06/20 21:54
12F:推 jn8029: 要iterate 不要for 无解,不管你用啥招术 藏在下面的都会 06/21 06:24
13F:→ jn8029: 有for. 转成set有 转成hash map也有 06/21 06:24
14F:推 ides13: 确实,map = [a.index(x) for x in b],所以python不常使 06/21 21:11
15F:→ ides13: 用map的语法。 06/21 21:12
16F:推 kif1205: 用while 06/22 00:11
17F:→ JeanSijhih: 何不用 find ? 07/20 14:10