[英]Create a list with items from another list at indices specified in a third list
[英]Extract values from a list that have the same indices as the items of another list which are contained in a third list
我想知道我是否可以在 2 個列表中識別相似值的位置,並使用在第三個列表中識別值的位置。
v= [100,200,300,400,500,600,700,800,900,1000,1100]
x= [67,56,89,21,90,54,38,93,46,17,75]
j= [200,500,600]
我要代碼識別j的值可以在v[1]、v[4]和v[5]中找到,並利用v[1]、v[4]和v[5]的位置得到/ 返回 x[1]、x[4] 和 x[5] 的值。 到目前為止,我已經嘗試過:
h = set(v)&set(j)
print(h)
您可以為此使用列表理解:
>>> v= [100,200,300,400,500,600,700,800,900,1000,1100]
>>> x= [67,56,89,21,90,54,38,93,46,17,75]
>>> j= [200,500,600]
>>> [x[i] for i, v_ele in enumerate(v) if v_ele in j]
[56, 90, 54]
或者使用您的部分集合交集解決方案:
>>> [x[v.index(i)] for i in set(v)&set(j)]
[56, 54, 90]
請注意,這不會保持順序,因為集合本質上是無序的。 為了解決這個問題,我們可以使用鍵作為x.index
進行排序:
>>> sorted([56, 54, 90], key=x.index)
[56, 90, 54]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.