测试Python元组/列表中元素的类型
你怎么确认一个列表或元组里的所有元素都是同一种类型,并且是特定的类型呢?
比如说:
(1, 2, 3) # test for all int = True
(1, 3, 'a') # test for all int = False
5 个回答
5
根据你正在做的事情,使用鸭子类型可能会更符合Python的风格。这样的话,像整数一样的东西(比如浮点数等)也可以被当作整数来使用。在这种情况下,你可以尝试把元组中的每个项目都转换成int
类型,然后处理可能出现的错误:
>>> def convert_tuple(t, default=(0, 1, 2)):
... try:
... return tuple(int(x) for x in t)
... except ValueError, TypeError:
... return default
...
然后你可以这样使用它:
>>> convert_tuple((1.1, 2.2, 3.3))
(1, 2, 3)
>>> convert_tuple((1.1, 2.2, 'f'))
(0, 1, 2)
>>> convert_tuple((1.1, 2.2, 'f'), default=(8, 9, 10))
(8, 9, 10)
8
all(isinstance(i, int) for i in your_list))
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。
68
all(isinstance(n, int) for n in lst)
示例:
In [3]: lst = (1,2,3)
In [4]: all(isinstance(n, int) for n in lst)
Out[4]: True
In [5]: lst = (1,2,'3')
In [6]: all(isinstance(n, int) for n in lst)
Out[6]: False
你可以用 type(n) is int
来代替 isinstance(n, int)
。