首页 > 解决方案 > 有没有办法将变量与列表中的每个项目进行比较?

问题描述

如何将变量与列表中的每个项目进行比较并返回小于变量的值?

x = 150
my_list = [15, 100, 500, 2000, 5000]

所以我想返回一个包含 15 和 100 的列表。我正在尝试类似下面的 for 循环:

for n in my_list:
    if x > my_list[n]:
         print("True")

这给了我一个索引错误。我明白为什么会出现索引错误,我还能尝试什么?

标签: python

解决方案


在 Python 中编写 for 循环时

for n in my_list:
    if x > my_list[n]:
         print("True")

n在每个循环中将是列表本身而不是索引中的项目。因为如果你把所有的ns 都打印出来,就15, 100, 500, 2000, 5000不会0, 1, 2, 3, 4

所以你的代码是:

for n in my_list: # n is the number
    if x > n:
         print("True")

您可以通过其他方式获取项目的索引。例如,使用枚举(参见:https ://docs.python.org/3/library/functions.html#enumerate )


推荐阅读