[英]Type Testing Elements of a List
有人可以就以下结果提供一些评论。 我特别感到困惑的是,当我写作时我实际上在做什么:alist = [None] * 5在#1中为什么'is'语句是False,但isinstance在#3中是真的很赞赏。
#1
>>> alist = [None]*5
>>> alist
[None, None, None, None, None]
>>> type(alist[0])
<type 'NoneType'>
>>> type(alist[0]) is None
False
#2
>>> alist = [int]*5
>>> alist
[<type 'int'>, <type 'int'>, <type 'int'>, <type 'int'>, <type 'int'>]
>>> type(alist[0]) is int
False
>>> isinstance(alist[0],int)
False
#3
>>> alist = [0.0]*5
>>>type(alist[0])
<type 'float'>
>>> alist[0] is float
False
>>> isinstance(alist[0],float)
True
当我写作时我实际上在做什么:alist = [None] * 5 in
您正在列表中调用*运算符。 见这里: http : //docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange
为什么'是'的陈述是假的
因为<type 'NoneType'>
不是None
,它的类型None
。
在#3中isinstance为True
因为alist[0]
是float
类型的一个实例。 不是那么难,是吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.