PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Python
[問題] 多個list快速比對
作者:
oneonesix
(小韓)
2020-09-13 06:48:24
例
A= [1,2,3,4]
B= [5,6,7,8]
C= [1,3,4,5,7]
然後我需要A和C比對,
如果一樣就顯示相對於A同位置的B,
A和B的個數都是一樣的
例如
A[3] = C[2] ,然後顯示B [3]
小弟目前只會笨笨的用迴圈去比對,
但是資料量一大的話就會很久
請問有大大有更好的方法嗎?
例
for i,j in zip(A,B):
for k in C:
If i==k:
Print(j)
作者:
SocketAM2
(AM2)
2020-09-13 07:00:00
中間兩行換成 if i in C:數量很大的話還可以把C先做成set
作者:
remia81
2020-09-13 08:08:00
numpy.array(B)[numpy.isin(A,C)]或list comprehension包起來[B[n] for n,i in enumerate(A) if i in C]
作者:
lemon651
(小明)
2020-09-13 10:21:00
有個東西叫map
作者:
Pieteacher
(pieteacher)
2020-09-13 11:52:00
併起來 用 dataframe 的 duplicated()
作者:
LP9527
(ㄊㄇ抽菸都去)
2020-09-13 13:30:00
資料量大指的是c多以外,ab也很多嗎
作者:
oneonesix
(小韓)
2020-09-13 18:26:00
大量指ABC都約四萬筆左右
作者:
germun
(ger)
2020-09-13 19:12:00
B不用包進loop吧 記index就好 然後值會不會重覆也要考慮
作者:
hsnusonic
(sonic)
2020-09-14 01:34:00
同一樓,先把C變set會比較快
作者:
ro9956882
(幽靈)
2020-09-14 02:41:00
好set直接把O(n^2)變O(n) 不用嗎
作者:
tacovirus
(小璋丸)
2020-09-20 13:33:00
不管多努力都贏不過平行運算
繼續閱讀
[問題] pycharm import套件呈現灰字
tiramisu0225
[問題] USB descriptor 讀取問題
a1781781781
Re: [問題] 請問範例
CMJ0121
[問題] 請問範例
pttnewborn
[問題] window工作排程py檔執行問題
gene50814
Re: [問題] 將不同長度的dic寫進csv檔
TuCH
[問題] 例外(exception)處理的技巧或原則
icetofux
[問題] 將不同長度的dic寫進csv檔
moodoa3583
[問題] python新手問題
kobeiskober
[問題] Django CMS開發套件
jackjenny
Links
booklink
Contact Us: admin [ a t ] ucptt.com