what is difference between [None] and [] in python?
我认为[没有]和[没有]是一样的,但在我的测试中,也许有什么…
1 2 3 4 | >>>print len([]) 0 >>>print len([None]) 1 |
我什么时候应该使用"无"?和[]
还有一个有趣的问题
1 2 3 4 5 6 7 8 | >>>c= [] >>>d= [] >>>print c is d False >>>a= 1 >>>b=1 print a is b True |
为什么空列表的ID授予不同?
1 2 3 4 | a = [] b = a a is [] #false a is b #true |
因为如果你不知道何时以及如何使用它,
1 2 3 4 5 6 7 8 9 10 11 | >>> 1900 is 1900 True >>> a = 1900 >>> b = 1900 >>> a is b False >>> a, b = 1900, 1900 >>> a is b True |
例如,在这个问题中解释了这种相当奇怪的行为:为什么Python处理"1是1**2"与"1000是10**3"不同?
使用
1 2 3 4 | >>> a == b True >>> 1900 == 1900 True |
正如人们所期望的。
问题1:
无是对象。它是"非类型"类型。这可以通过在终端中执行类似的操作看到:
1 2 | >>> type(None) <type 'NoneType'> |
所以,当你把这个对象放在一个列表中时,这个列表有一个元素。
问题2:python中的赋值操作符
或者,当您将一个名称附加到一个新创建的列表(使用
当你说
你想用
1 2 | >>>c= [] # This is a new list object >>>d= [] # This is another new list object |
在python中,
1 2 | >>>print c is d False |
是意料之中的事。
另一方面,
1 2 3 4 | >>>c= [] # This is a new list object >>>d = c # This is the same object as c >>>print c is d True |
这里,A和B是基本体,而不是对象
1 2 | >>>a= 1 >>>b=1 |
因此,这是预期的:
1 2 | print a is b True |