繁体   English   中英

键入列表的测试元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM