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?
谢谢,里科
最佳答案
您只是打印这些范围内的所有值,而不与数组元素进行比较。第一个起作用只是一个巧合,因为数组中同时包含 2
和 3
。
如果你想打印一定范围内的数组元素,那么你必须用循环来完成:
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]
关于使用较大整数的 Python 2.7 数组范围无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19080515/