如果全部在列表中 == 某物

问题描述:

使用 Python 2.6,有没有办法在一个语句中检查序列的所有项是否等于给定值?

Using Python 2.6, is there a way to check if all the items of a sequence equals a given value, in one statement?

[pseudocode]
my_sequence = (2,5,7,82,35)

if all the values in (type(i) for i in my_sequence) == int:
     do()

而不是说:

my_sequence = (2,5,7,82,35)
all_int = True
for i in my_sequence:
    if type(i) is not int:
        all_int = False
        break

if all_int:
    do()

使用:

all( type(i) is int for i in lst )

示例:

In [1]: lst = range(10)
In [2]: all( type(i) is int for i in lst )
Out[2]: True
In [3]: lst.append('steve')
In [4]: all( type(i) is int for i in lst )
Out[4]: False

.根据评论变得更干净.

. Made cleaner as per comments.