使用较大整数的python2.7数组范围无法正常工作

2024-04-20 11:26:50 发布

您现在位置:Python中文网/ 问答频道 /正文

array = [2,3,2,4,7,9]  
for a in range(2,4):
    print a

2
3

这就是我想要的,只在很窄的范围内打印数字。但我要用的数字要大得多。当我用更大的数字做同样的尝试时,我得到了另一种东西的打印。例如:

array = [22,57,205,276,476]

for a in range(200,210):
    print a

200 201 202 202 203 204 205 206 207 208 209

那不是我想要的。我只期望得到205。显然,我对大数的使用改变了我程序的行为。我怎么才能拿到205?你知道吗

谢谢,里科


Tags: in程序forrange数字arrayprint大数
2条回答

只需打印这些范围内的所有值,而不与数组元素进行比较。第一个成功只是巧合,数组中同时有23。你知道吗

如果要打印特定范围内的数组元素,则必须使用循环:

rng = range(200, 210)

for elem in array:
    if elem in rng:
        print elem

或者,用一个列表:

[elem for elem in array if elem in rng]

也可以避免创建新的范围列表。只需使用比较运算符检查边界:

[elem for elem in array if 200 <= elem < 210]

range()返回一个列表(在py2.x中),您将遍历该列表并打印其项。你知道吗

>>> range(2,4)
[2, 3]
>>> range(200,210)
[200, 201, 202, 203, 204, 205, 206, 207, 208, 209]

文件:^{} Statements

也许你想这么做:

>>> array = [22,57,205,276,476]
# `item` is assigned the values from the list during loop.
>>> for item in array:  
...     if 200 <= item < 210: #Equivalent to `item >=200 and item <210`
...         print item
...         
205

看看第一个示例,您可能还想使用set来跟踪已打印的项目:

>>> array = [2,3,2,4,7,9]
>>> seen = set()
>>> for item in array:
...     if 2 <= item < 4 and item not in seen:
...         print item
...         seen.add(item)
...         
2
3

相关问题 更多 >