获取交叉列表后的索引

交叉列表求交集是一个很简单的操作,使用set函数即可,例子如下

a=[1,2,3,4,5,6,7,8,9]

b=[4,5,1,2,9,8]

print(set(a)&set(b))

>>>>{1, 2, 4, 5, 8, 9}

但是有些时候是需要求出这个交集在一个列表里面对应的索引的,如何求出对应的索引呢?比如求列表a和b的交集在列表a中的索引,方法是把列表a的索引和数据设置为一个字典,然后使用set函数交叉这个字典与列表b,最后输出对应的字典就行了,例子如下:

ind_dict = dict((k,i) for i,k in enumerate(a))

inter = set(ind_dict)&set(b)

indices = [ ind_dict[x] for x in inter ]

print(indices)

>>>>[0, 1, 3, 4, 7, 8]

其中enumerate函数可以把数组或者list的索引和数据组合成一个字典输出来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值