Python中提取列表X元素在列表Y中对应位置的问题求助
解决方法
你的问题出在**Positions_x列表没有每次循环时重置**,而且while循环的条件有误(会导致索引越界)。
修正后的代码
X = [1, 8, 5, 6] Y = [10, 5, 1, 8, 1, 8, 5, 1, 8, 6] x = 0 while x < len(X): Positions_x = [] # 每次处理X的新元素时,新建空列表 for pos, char in enumerate(Y): if char == X[x]: Positions_x.append(pos) print(Positions_x) x += 1
输出结果
[2, 4, 7] [3, 5, 8] [1, 6] [9]
更简洁的写法(遍历X元素)
如果不想用while循环,直接遍历X的元素会更直观:
X = [1, 8, 5, 6] Y = [10, 5, 1, 8, 1, 8, 5, 1, 8, 6] for elem in X: positions = [pos for pos, char in enumerate(Y) if char == elem] print(positions)
这段代码用列表推导式直接生成每个元素的位置列表,代码更简洁易读。
内容的提问来源于stack exchange,提问作者Star
相关产品推荐
相关产品推荐

