例如,我有3张单子
list1 = [30,14,42,17,18]
list2 = [17,18,6,7,30,9,5,14,3,42,33]
list3 = [[-25,54,789,0.56],[-5,4,9,0.5],[-5,4,0.009,0.8],[-5,456,7,56],
[-5,4,9,0.6],[-2,4,9,-0.578],[-2,0.5,-7,-0.6],[-25,-50,78,0.1],[-4,-58,79,0.6],
[-2,5,7,4],[-5,54,43,0.45]]
list2和list3的长度相同
我的问题是,取list1
中的每个值,找到它在list2
中的位置,从list3
中的相同位置提取值。这些列表是在运行时生成的,即id和值在运行时是不同的
您可以使用带有
enumerate
的dict理解为dict2
创建一个数字到索引映射,然后使用映射将list1
中的数字映射到list3
中映射索引处的相应子列表:这将输出:
注意,首先创建映射将问题的平均时间复杂度降低到O(n)
使用列表理解
或者
相关问题 更多 >
编程相关推荐