为了账号安全,请及时绑定邮箱和手机立即绑定

从列表中查找值的索引到不同的列表

从列表中查找值的索引到不同的列表

呼唤远方 2023-03-22 16:04:16
使用 Python 3,我想按升序遍历第一个列表中的项目,并在第二个列表中找到该项目的索引以将其存储到第三个结果列表中。下面是一个工作示例:list1 = [53, 65, 67, 37, 14, 98, 122, 124, 183]list2 = [0, 14, 37, 53, 65, 67, 98, 122, 124, 183, 199]wanted_output = getWantedOutput(list1, list2)print(wanted_output)>>> [3, 4, 5, 2, 1, 6, 7, 8, 9]
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

这种方法的可读性不如其他给出的答案,但如果您的列表很长,它会更快。


wanted_output = []

for item in list1:

    try:

        wanted_output.append(list2.index(item))

    except ValueError: # item not in list2

        continue


查看完整回答
反对 回复 2023-03-22
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

长列表最有效的解决方案是预处理第二个列表并将其转换为字典,其中列表项是键,它们的位置是值。然后在该字典中查找第一个列表中的元素:


positions = {item: pos for pos, item in enumerate(list2)}

[positions[item] for item in list1]

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


查看完整回答
反对 回复 2023-03-22
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

list1 = [53, 65, 67, 37, 14, 98, 122, 124, 183]

list2 = [0, 14, 37, 53, 65, 67, 98, 122, 124, 183, 199]


[list2.index(x) for x in list1 if x in list2]


Output:

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


查看完整回答
反对 回复 2023-03-22
  • 3 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号