首页 > 解决方案 > 列表中的特定范围(python)

问题描述

我有一个从文本字符串中提取的整数列表,所以当我打印列表(我称之为test)时,我得到:

['135', '2256', '1984', '3985', '1991', '1023', '1999']

我想打印或制作一个仅包含特定范围内数字的新列表,例如 1000-2000 之间。我尝试了以下操作,但它仍然返回我原始列表中的所有项目。

for i in test:
    if i>1000:
        print i
    elif i<2000:
        print i

而且我无法弄清楚为什么它仍然会打印低于 1000 或高于 2000 的数字。

标签: pythonpython-2.x

解决方案


首先将您的字符串列表转换为整数列表:

ints_list = [int(x) for x in test]

然后,您可以根据需要过滤此列表。我们可以使用上面一行的列表推导来做到这一点。请注意,and这使得数字必须满足两个条件才能在列表中。

filtered_list = [x for x in ints_list if x > 1000 and x < 2000]

推荐阅读