Python 从另一个序列对象查找序列对象中元素的索引
这里,series2始终是series1的子集。我想从series1中找到series2中元素的索引Python 从另一个序列对象查找序列对象中元素的索引,python,list,indexing,Python,List,Indexing,这里,series2始终是series1的子集。我想从series1中找到series2中元素的索引 series1= [11,22,3,4,5,33,7] series2= [11,22,33] c=[] for i in series2: if i in series1: c.append(series1.index[i]) print(c) 预期产出:[0,1,5] 但我在输出中得到一个空白列表。您可以在这里指出错误。您可以使用列表理解和枚举,将系列2定义为集
series1= [11,22,3,4,5,33,7]
series2= [11,22,33]
c=[]
for i in series2:
if i in series1:
c.append(series1.index[i])
print(c)
预期产出:[0,1,5]
但我在输出中得到一个空白列表。您可以在这里指出错误。您可以使用列表理解和
枚举
,将系列2
定义为集合,以降低查找复杂性:
series2= set([11,22,33])
[ix for ix,i in enumerate(series1) if i in series2]
# [0, 1, 5]
根据您的方法,有两件事是错误的:
- 您应该先迭代
series1
,然后迭代series2
list.index
如果是函数,则不能订阅。您应该使用list.index(项目)
我建议您检查数据结构,以便更清楚地了解这些点您可以使用列表理解和枚举
,将系列2
定义为集合
,以降低查找复杂性:
series2= set([11,22,33])
[ix for ix,i in enumerate(series1) if i in series2]
# [0, 1, 5]
根据您的方法,有两件事是错误的:
- 您应该先迭代
series1
,然后迭代series2
list.index
如果是函数,则不能订阅。您应该使用list.index(项目)
我建议您检查数据结构以更清楚地了解这些要点您需要将c.append(series1.index[I])更改为c.append(series1.index(I))
您需要将c.append(series1.index[i])更改为c.append(series1.index(i))
答案有用吗?别忘了你可以投票并接受答案。看,谢谢!答案有用吗?别忘了你可以投票并接受答案。看,谢谢!