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

Python中如何对比列表I1与I2并生成符合条件的结果?

错误原因

你的代码报错是因为在列表推导式里,i <= I2这一步是拿I1里的单个整数和整个I2列表做比较,Python不允许整数和列表直接用<=判断大小,所以抛出了TypeError。

需求实现

你要的是对I1里的每个元素,筛选出I2中所有小于等于它的元素,再把这些筛选结果按顺序拼成嵌套列表。直接用嵌套列表推导式就能搞定:

I1 = [1, 4, 5, 8]
I2 = [2, 3, 5, 6]

result = [[x for x in I2 if x <= num] for num in I1]
print(result)
代码说明
  • 外层循环遍历I1的每个元素num
  • 内层循环遍历I2的每个元素x,只保留满足x <= num的项
  • 运行后输出就是你期望的:[[], [2, 3], [2, 3, 5], [2, 3, 5, 6]]

如果I2是有序的,还可以用bisect模块优化效率(比如找到第一个大于num的元素位置,直接切片),但对于小规模数据,上面的写法足够简单直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:55:19