python函數返回list
Ⅰ 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__