Python List中如何查找?

例如:
list1 结构: 名字,ID,颜色,数量,类型
list1 = [['a',1,255,100,'03'],['a',2,481,50,'06'],['a',47,255,500,'03'],['b',3,1,50,'11']]

list2结构:名字,类型,颜色
list2 = [['a','03',255],['a','03',481]]

如何在list1中找出所有与list2中匹配的元素?
结果
list = [['a',1,255,100,'03'],['a',2,481,50,'06'],['a',47,255,500,'03']]

难道只能for 一个个对比吗?是否有简单的方法

阅读 3.7k
2 个回答
import pandas as pd
list1 = [['a',1,255,100,'03'],['a',2,481,50,'06'],['a',47,255,500,'03'],['b',3,1,50,'11']]
df1=pd.DataFrame(list1,columns=["名字","ID","颜色","数量","类型"])
list2 = [['a','03',255],['a','06',481]]
df2=pd.DataFrame(list2,columns=["名字","类型","颜色"])
df=pd.merge(df1,df2,how='inner',on=["名字","类型","颜色"],right_index=True)
df.sort_index(inplace=True)
print(df)

如果是有序的, 可以用二分法查找, 如果不是循环遍历.
list 这种数据结构并不适合随机查询. 如数据量大, 试试其他数据结构, 如字典.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题