python - 有没有办法将变量与列表中的每个项目进行比较?
问题描述
如何将变量与列表中的每个项目进行比较并返回小于变量的值?
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 中编写 for 循环时
for n in my_list:
if x > my_list[n]:
print("True")
n
在每个循环中将是列表本身而不是索引中的项目。因为如果你把所有的n
s 都打印出来,就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 )