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