给出一个列表,您如何找到相同值在另一个列表中的索引位置?

问题描述 投票:0回答:1

我正在为背包算法创建解密函数。我是Python编程的新手。我需要找到一个数组中的值出现在另一个数组中的位置,将这些值编入索引,将索引值设置为“ 1”,并将另一个列表中没有等效值的其他值设置为“ 0”。

假设:

privkey = [2,3,6,13,27,52]
searchList = [3,6]

由于searchList的[3,6]出现在位置privkey [1]和privkey [2]中,所以我希望代码在新列表中将这些索引设置为Binary'1'。因此,新值应为newList = [0,1,1,0,0,0]。

到目前为止我尝试过的是:

newList = []
for i in privkey:
if (privkey[i]==searchList[i]):
    newList = append(privkey.index(i)) # should yield newList = [1,2]  
    print(newList)
else:
    print("none")

我真的不知道如何使用索引将privkey中的值设置为'1'值。任何帮助将不胜感激。谢谢。

python list encryption indexing knapsack-problem
1个回答
1
投票

您可以通过列表理解来做到这一点:

>>> privkey = [2,3,6,13,27,52]
>>> searchList = [3,6]
>>> [int(x in searchList) for x in privkey]
[0, 1, 1, 0, 0, 0]

https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions

© www.soinside.com 2019 - 2024. All rights reserved.