【发布时间】:2020-09-02 07:52:36
【问题描述】:
我有两个列表
a = [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0]
b = [4,4]
列表也可能是这样的
a = [1, 1, 1, 4, 1, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0]
b = [1,4]
我需要列表 a 中的索引位置来获取列表 b 中的值
我的预期输出应该(这些是值的索引位置)
output-
1. [0,1]
2. [0,3]
这段代码给出了所有匹配的索引值
c_set = set()
res = []
for idx, val in enumerate(test_list):
if val not in oc_set:
oc_set.add(val)
else:
res.append(idx)
但我需要索引值的长度作为列表 b,正如我在预期输出中提到的那样。
提前致谢
【问题讨论】:
-
我怀疑
set()方法在您的第一个示例中被破坏,因为您有[4, 4],所以4的第二个实例将被忽略。我不清楚为什么应该给出[0, 1]而不是[0, 0]- 这绝对是预期的行为吗? -
我无法理解你的问题,请你详细解释一下
-
输出不加起来,那些指数代表什么?
-
您出于某种原因在问题的顶部为
a和b分别给出了两个值,然后您可能为其中一种情况提供了预期的输出...... ?a和b的哪个版本是相关的两个? -
@roganjosh 因为正如您在我的列表 b 中看到的那样,有两个值,我希望这些值有两个不同的索引。
标签: python list python-2.7