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

Python:如何遍历子列表并使用zip函数选取指定索引元素?

问题解决:用zip选取两个列表子列表相同索引的元素

原代码存在的问题:

  • 条件判断错误:用了赋值符号=,应该用相等判断==
  • 元素索引方式错误:应该是子列表[索引](比如i[c]),而非索引[子列表](c[i])
  • 结果列表初始化位置错误:out1和out2放在外层循环内,每次循环都会被重置为空,无法保留之前的结果
  • 遍历方式冗余:没必要通过range(len(i))生成索引再zip,直接操作子列表更高效

修正后的代码实现

如果你只需要从每个子列表的索引1位置(对应元素7、10)提取元素到out1,out2保持为空,最简单的写法如下:

List1 = [[6, 7, 8], [9, 10, 11]]
# 此处假设A/B/C/D/E/F是已定义的变量,示例中用字符串占位
List2 = [["A", "B", "C"], ["D", "E", "F"]]

out1 = []
out2 = []

# 配对两个列表的子列表
for sub_list1, sub_list2 in zip(List1, List2):
    # 提取子列表索引1的元素加入out1
    out1.append(sub_list1[1])
    # 不需要List2的元素,所以不对out2做操作

print(out1)  # 输出: [7, 10]
print(out2)  # 输出: []

如果需要通过遍历索引的方式实现(比如后续要灵活调整索引条件),可以用enumerate结合zip:

List1 = [[6, 7, 8], [9, 10, 11]]
List2 = [["A", "B", "C"], ["D", "E", "F"]]

out1 = []
out2 = []

for sub1, sub2 in zip(List1, List2):
    # 遍历子列表的索引与对应元素对
    for idx, (elem1, elem2) in enumerate(zip(sub1, sub2)):
        if idx == 1:
            out1.append(elem1)
            # 若后续需要List2对应元素,取消下面注释即可
            # out2.append(elem2)

print(out1)  # 输出: [7, 10]
print(out2)  # 输出: []

内容的提问来源于stack exchange,提问作者Redouane TEBBOUNE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 03:33:34