enumerate python用法具體如下:
10年積累的網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有南木林免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
enumerate函數(shù)用于遍歷序列中的元素以及它們的下標(biāo),多用于在for循環(huán)中得到計(jì)數(shù),enumerate參數(shù)為可遍歷的變量,如字符串,列表等。
一般情況下對(duì)一個(gè)列表或數(shù)組既要遍歷索引又要遍歷元素時(shí),會(huì)這樣寫:但是這種方法有些累贅,使用內(nèi)置enumerrate函數(shù)會(huì)有更加直接,優(yōu)美的做法。
enumerate函數(shù)說明
函數(shù)原型:enumerate(sequence,start=0])。功能:將可循環(huán)序列sequence以start開始分別列出序列數(shù)據(jù)和數(shù)據(jù)下標(biāo),即對(duì)一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串),enumerate會(huì)將該數(shù)據(jù)對(duì)象組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo)。存在一個(gè)sequence。
什么是Python
Python是一種廣泛使用的解釋型、高級(jí)和通用的編程語言。Python由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì)的Guido van Rossum創(chuàng)造,第一版發(fā)布于1991年,它是ABC語言的后繼者,也可以視之為一種使用傳統(tǒng)中綴表達(dá)式的LISP方言。Python提供了高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊獭?/p>
當(dāng)python中的生成器被完整遍歷一次后,就無法再次遍歷。
我們希望享有生成器迭代占用內(nèi)存小的特性,又希望這個(gè)生成器能被遍歷多次。
方案之一是使用函數(shù) itertools.tee 來復(fù)制生成器
語法: generator1, generator2 = itertools.tee(generator, n=2)
generator是需要復(fù)制的生成器, n是復(fù)制出生成器個(gè)數(shù),默認(rèn)為2。
我們?yōu)榱松善髂芏啻伪闅v,可以這樣寫:
generator, copy_generator = itertools.tee(generator, 2)
然后遍歷copy_generator,保存的generator可以再次復(fù)制。
1、generator被復(fù)制后盡量不要使用
2、如果生成器中迭代的還是生成器,復(fù)制最外層生成器,生成器依然只能遍歷一次。
下一篇
python生成器多次遍歷(二)------創(chuàng)建生成器類
第一個(gè)圖中,在執(zhí)行 print(bianli__str('sjsjsj'))這句時(shí),首先執(zhí)行print括號(hào)中的內(nèi)容,即進(jìn)入bianli__str函數(shù),執(zhí)行了函數(shù)中的print語句,打印的內(nèi)容是字符串的每一個(gè)字符,然后退出函數(shù),執(zhí)行print這個(gè)操作,print的內(nèi)容是你定義的函數(shù),這個(gè)函數(shù)本身是沒有值的,所以是None
解決的方法就是調(diào)用函數(shù)的時(shí)候不用再print了,如下圖:
第二個(gè)圖中結(jié)果不對(duì)是因?yàn)閞eturn就會(huì)退出函數(shù),所以打完第一個(gè)字符后就退出了
python for i in range是用來for循環(huán)遍歷的。python中range 是個(gè)函數(shù),range() 函數(shù)可創(chuàng)建一個(gè)整數(shù)列表,python中用來在for循環(huán)中遍歷。
用法如:?for i in range (1,3)。語法格式:range(start, stop[, step]),分別是起始、終止和步長。
range()函數(shù)返回的對(duì)象的行為都很像一個(gè)列表,但是它確實(shí)不是一個(gè)列表,它只是在循環(huán)迭代的情況下返回指定索引的值,但是它并不會(huì)在內(nèi)存中真正產(chǎn)生一個(gè)列表對(duì)象,這樣也是為了節(jié)約內(nèi)存空間。實(shí)際用法分以下幾種情況:
for in range(3)即:從0到3,不包含3,即0,1,2。
2.for in range(1,3) 即:從1到3,不包含3,即1,2。
3.for in range(1,3,2)即:從1到3,每次增加2,因?yàn)?+2=3,所以輸出只有1
第三個(gè)數(shù)字2是代表步長。如果不設(shè)置,就是默認(rèn)步長為1。
沒有優(yōu)雅的方法解決,只有不要使用print語句,如樓上所說,或者使用python3.X中的print函數(shù)(通過
from __future__ import print_function使能print函數(shù)形式)
其實(shí),在python2.X手冊(cè)中對(duì)print語句描述說:(python2.7.2官方幫助文檔)
一個(gè)空格會(huì)被自動(dòng)打印在每個(gè)對(duì)象前,
除非:(1)還沒有輸出寫到標(biāo)準(zhǔn)輸出中
(2)當(dāng)最后一個(gè)寫到標(biāo)準(zhǔn)輸出的是一個(gè)除了空格‘ ’的空白字符
(3)當(dāng)最后寫到標(biāo)準(zhǔn)輸出的不是一個(gè)print語句。
所以在apple、banana等每個(gè)字符前都有一個(gè)空格。(apple的a前也有空格呢!)
一個(gè)好的解決辦法是使用python3.X中的print函數(shù)。
通過在文件前面加上:
from __future__ import print_function
就可以使用print的函數(shù)形式了。
print函數(shù)的語法:
print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout])
默認(rèn)下,若沒有指定sep,則使用空格。沒指定end,則使用換行符。沒指定輸出文件則輸出到標(biāo)準(zhǔn)輸出。
例如:print('hello','world',sep='-',end='#')輸出:
hello-world#
所以,你的程序可改為:
from __future__ import print_function
list = ["apple", "banana", "grape", "orange"]
for x in range(len(list)):
print('list[%d]:'%x,end='')
for y in range(len(list[x])):
print(list[x][y],sep='',end='')
print('')
至于: 'list[%d]:'%x 這里的百分號(hào),是一個(gè)對(duì)字符串的操作符。百分號(hào)使得百分號(hào)前面的字符串中
的%d被百分號(hào)后的x的值替換掉。
1.如果我們想要某件事情重復(fù)執(zhí)行具體次數(shù)的時(shí)候可以使用for循環(huán)。
2.for循環(huán)主要用來遍歷、循環(huán)、序列、集合、字典,文件、甚至是自定義類或函數(shù)。
使用for循環(huán)對(duì)列表進(jìn)行遍歷元素、修改元素、刪除元素、統(tǒng)計(jì)列表中元素的個(gè)數(shù)。
for循環(huán)主要用來遍歷、循環(huán)、序列、集合、字典
結(jié)果演示:
apple
orange
banana
grape
for循環(huán)主要用來遍歷、循環(huán)、序列、集合、字典
把banana改為Apple
結(jié)果演示:['apple', 'orange', 'apple', 'grape']
結(jié)果演示:['apple', 'orange', 'grape']
統(tǒng)計(jì)apple的個(gè)數(shù)
結(jié)果演示:Fruits列表中apple的個(gè)數(shù)=2個(gè)
注:列表某一數(shù)據(jù)統(tǒng)計(jì)還可以使用Fruit.count(object)
結(jié)果演示:1 2... 10=362880
結(jié)果演示:
a
b
c
結(jié)果演示:
a
2
bc
結(jié)果演示:
朝辭白帝彩云間,千里江陵一日還。
兩岸猿聲啼不住,輕舟已過萬重山。
9.遍歷字典
結(jié)果演示:
鍵---name
值---Kaina
鍵---age
值---22