You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 03:24:38