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

Python中如何按索引逐对比较两列表并返回list1中的较大值?

在Python中实现对应索引元素比较并筛选

当然可以实现这个需求啦!这在Python里是个很常见的场景,我给你分享两种实用的方法,看哪种更适合你~

方法1:用列表推导式(最简洁Pythonic的写法)

这是我最推荐的方式,用zip()函数把两个列表的对应元素配对,再通过推导式筛选符合条件的元素:

list1 = [100, 223, 335, 143, 218]
list2 = [90, 200, 350, 150, 200]

# 核心代码:配对元素后筛选list1中大于对应list2的元素
result = [x for x, y in zip(list1, list2) if x > y]

print(result)  # 输出: [100, 223, 218]

小说明:

  • zip(list1, list2)会把两个列表的同索引元素打包成元组,比如(100,90)、(223,200),完全符合你“只比较同一索引”的要求
  • 如果两个列表长度不一样,zip()只会处理到较短列表的长度,不会出现索引越界问题

方法2:手动循环遍历索引(适合新手理解逻辑)

如果你刚接触Python,想更清楚看到每一步的执行过程,可以用for循环遍历索引来实现:

list1 = [100, 223, 335, 143, 218]
list2 = [90, 200, 350, 150, 200]
result = []

# 遍历索引,这里假设两个列表长度相同;如果长度不同,建议用min(len(list1), len(list2))避免报错
for i in range(len(list1)):
    if list1[i] > list2[i]:
        result.append(list1[i])

print(result)  # 输出同样是: [100, 223, 218]

注意点:

如果两个列表长度不一致,直接用range(len(list1))可能会因为索引超出list2的范围报错,这时候可以改成range(min(len(list1), len(list2))),只遍历两个列表都有的索引位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:33:27