【发布时间】:2014-04-14 12:18:47
【问题描述】:
如何检测列表中的值是否为负,我只需要找出是否存在负值,到目前为止我有这个:
if list[range(list)] < 0
但这肯定只会检测到列表中的所有值是否都是负数。我该怎么做呢?
另外,我如何能够检测列表中的值是否不是整数,例如它是浮点数,甚至是字符
谢谢
【问题讨论】:
如何检测列表中的值是否为负,我只需要找出是否存在负值,到目前为止我有这个:
if list[range(list)] < 0
但这肯定只会检测到列表中的所有值是否都是负数。我该怎么做呢?
另外,我如何能够检测列表中的值是否不是整数,例如它是浮点数,甚至是字符
谢谢
【问题讨论】:
你可以像这样使用any函数
if any(item < 0 for item in my_list):
例如,
print any(item < 0 for item in [0, 1, 2])
# False
print any(item < 0 for item in [0, 1, -2])
# True
我们在any 函数中使用生成器表达式。如果 item 中的任何一个小于 0,则返回 True。
【讨论】:
any 在遇到第一个 True 元素时会停止吗?如果不是,如果列表很长,我想知道是否值得手动循环并打破第一个 True,因为此时不需要检查剩余的元素。只是大声思考。
True后立即返回。