可以理解為,任意的集合使用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...