本文目录一览:
Python中的返回值问题!!!
首先,代码有误,你想调用的应该是
sorted([4,3,2,1])
reversed([4,3,2,1])
然后,你所说的reversed的返回值类型也不正确。
sorted返回的是list,reversed返回的是iterator。
list你应该很熟悉了。iterator和list是完全不同的东西。简单的说iterator只是提供一个接口,每次迭代可以产生一个值,到没有值为止。iterator在很多语言里面都有实现。在python里面主要用在for循环和list comprehension。
iterator和list/tuple/dict/set等容器的关系:
1.python内置的容器类几乎都实现了iterator接口。
显式获取某个容器的iterator可以调用iter函数:
l = [1,2,3,4]
i = iter(l)
//现在i就是一个list iterator。可以用来遍历l这个list.
i.next() # 1
i.next() # 2
//每一个iterator都必须实现next方法。并且在没有元素时抛出StopIteration异常。
在for语句和list comprehension中,都是隐式调用了这个函数。所以可以直接
for obj in some_container:
pass
2.某些容器可以通过iterator进行初始化,比如list
l = [1,2,3,4]
i = iter(l)
l2 = list(i)
最后,没有列表和列表对象这种说法。这两者一般都是指列表对象(instance of the type list)。如果你是想说列表类(the list type)本身,可以这样得到:
type([])
或者
[].__class__
Python 中的逻辑运算符什么时候返回布尔值,什么时候不是,搞不懂,求解释
只有在while 或 if 后面才返回 布尔值
while/if a and b 等效于 while/if bool(a and b)
问一个python逻辑运算符的初级问题!
and 是短路运算符,python中,非0值都代表逻辑真,逻辑运算时返回最后运算的结果。例如:
5 and 2 ,返回最后运算的2。
2 and 5,返回5。
5 and 0,返回0。
0 and 5,还是返回0。因为0代表假,and 不再进行运算了,直接被短路,返回0