python迭代和如何判斷乙個物件是可迭代物件

2021-08-20 14:39:23 字數 1298 閱讀 8196

可以理解為,任意的集合使用for迴圈遍歷

python中,迭代永遠是取出元素本身,而非元素的索引。

對於有序集合,有時候會需要取出元素的索引,可以使用python內建的enumerate函式。

enumerate函式可以把乙個list變成索引-元素對,這樣就可以在for迴圈中同時迭代索引和元素本身。

list_one = ['a','b','c']

for i in enumerate(list_one):

print(i) # 列印(0,'a') (1,'b') (2,'c')

print(type(i)) # 型別是tuple

print(i[0]) # 列印list的下標0 1 2

字典本身是以key來迭代的

dict_one =   

# 迭代key

for key in dict_one:

print(key)

迭代字典物件的value值可以使用values()/itervalues()方法。

# 迭代value

for key in dict_one:

print(dict_one[key])

print('*'*20)

for value in dict_one.values():

print(value)

兩者效果相同,實際工作原理會有些不同。values()方法實際上是把乙個dict轉換成了包含value的list了;而itervalues()方法不會進行轉換,它會在迭代的過程中一次從dict中取出value,所以itervalues()方法比values()方法節省了生成list所需的記憶體。

迭代字典的key和value使用items()/iteritems()方法。

# 迭代key和value

for key,value in dict_one.items():

print(key,value)

通過collections模組的iterable型別來判斷

from collections import iterable

print(isinstance('abc',iterable)) # str是否可迭代 true

print(isinstance(5,iterable)) # 整數是否可迭代 false

print(isinstance('5',iterable)) # str是否可迭代(區分上面的整數) true

Python 如何反方向迭代乙個序列

問題 你想反方向迭代乙個序列 解決方案 使用內建的 reversed 函式,比如 a 1,2,3,4 for x in reversed a print x 432 1反向迭代僅僅當物件的大小可預先確定或者物件實現了 reversed 的特殊方法時才能生效。如果兩者都不符合,那你必須先將物件轉換為乙...

如何反序迭代乙個序列

在列表中,如果我們要將列表反向迭代通常使用 reverse 但這個方法有個缺陷就是會改變列表。因此,我們推薦使用 reversed 它會返回乙個迭代器。這裡,我們可以實現 reversed 解決反向迭代問題 以列表為例 lst a c 1 a c 3 去重 print list set lst 反序...

python 判斷 迴圈和迭代

f1 引號中什麼都沒有,表示false 引號中有空白字元,表示true if f1 print true else print false furry input small input if furry if small print it s a cat.else print it s a bea...