最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

舉例講解如何在Python編程中進行迭代和遍歷

 更新時間:2016年01月19日 15:58:59   作者:樂晨  
這篇文章主要介紹了舉例講解如何在Python編程中進行迭代和遍歷,是Python入門學習中的基礎(chǔ)知識,需要的朋友可以參考下

迭代
首先理解下什么是迭代,python中所有從左往右掃面對象的方式都是可迭代的

有哪些方式是可迭代的:

1.文件操作

   我們讀取文件的時候,會用到一個readline()方法,其實它就是一個迭代器,它會返回當前的數(shù)據(jù),然后自動的調(diào)用內(nèi)置的next()方法來讓文件的讀取頭自動的移動到當前的下面一行,準備下次的讀取,到達文件末尾時,就會返回空字符串.

>>> f=open('hello.py')
>>> f.readline()
'#!/usr/bin/python2.5\n'
>>> f.readline()
'print "hello.word!"\n'
>>> f.readline()
'\n'
>>> f.readline()
''
 
>>> for i in open('hello.py'):
...       print(i)
... 
#!/usr/bin/python2.5
print "hello.word!"

用上面這樣方式來讀取文件內(nèi)容的話,速度很快,內(nèi)存占用也比較低,特別適合操作大文件.

下面這個方式適合操作一些小的文件,速度和效率沒有上面的好,所以建議以后操作文件的話,盡量用上面的。

>>> for i in open('hello.py').readlines():
...     print i
... 
#!/usr/bin/python2.5
print "hello.word!"

read方法和readline方法,
read()方法把整個文件的內(nèi)容放到字符串里
readline()方法則把文件的內(nèi)容按照行為單位放到列表里。
一般要替換文件里的某個字符的話,最好有readline,然后用循環(huán)把一行一行內(nèi)容循環(huán)出來,再查找替換,這樣效率比整個讀到一個字符串里來查找匹配效果更高。

2 for循環(huán)

例如:

>>> for i in range(5):
...    print(i)
... 

它中間處理的過程和下面的是一樣的:

>>> L=[0,1,2,3,4]
>>> I=iter(L)
>>> I.next()
0
>>> I.next()
1
>>> I.next()
2
>>> I.next()
3
>>> I.next()
4
>>> I.next()
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
StopIteration

每次調(diào)用迭代器調(diào)用next()方法返回結(jié)果,并讓文件指針往下移動一行,最后已StopIteration異常結(jié)束迭代。


3.列表解析:

相比python for循環(huán)速度會快很多

例如:

>>> L=[x+10 for x in range(10)]
>>> L

[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
python會在解釋器里對range(10)進行迭代,依次把列表里的內(nèi)容取出來,賦值給最左邊的x,然后執(zhí)行x+10的操作,
并且把執(zhí)行好的結(jié)果保存在列表里。等range(10)迭代完以后就新生成了一個列表,結(jié)果就是[10,11,12,13,14,15,16,17,18,19]
從上面可以看出,這也是建立python 列表的一個方法。

上面例子也可以用for循環(huán)來實現(xiàn).

>>> res=[]
>>> for x in range(10):
...    res.append(x+10)
... 
>>> res
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

從上面可以看出,python列表解析比手動的for 更加精簡,而且運行的更快(往往速度回快一倍),因為他們的迭代在解析器內(nèi)部是以C語言的速度執(zhí)行的,而不是以手動python代碼執(zhí)行的,特別對于較大的數(shù)據(jù)集合,這是使用列表解析的一個主要的性能優(yōu)點.

遍歷
1.通過序列取元素的方法進行遍歷

root@10.1.6.200:python# vim 3.py 
#!/usr/bin/python2.5
for i in 'hello':  #序列里的字符串
  print i,
 
y = [1,2,3,4,5,6]  #列表
for i in y:
  print i,

root@10.1.6.200:python# python 3.py 
h e l l o 1 2 3 4 5 6

2.通過序列本身偏移指數(shù)(索引)的方法進行遍歷

也就是迭代序列索引,注:迭代,重復(fù)執(zhí)行一條指令.

root@10.1.6.200:python# vim 3.py 
#!/usr/bin/python2.5
x='hello'
for i in range(len(x)):
  print x[i]
 
y = [1,2,3,4,5,6]
for i in range(len(y)):
  print y[i],
root@10.1.6.200:python# python 3.py 
h e l l o 1 2 3 4 5 6

字典有2種方式取到其值:

1.先取字典key,在取索引的值

root@10.1.6.200:python# vim 5.py 
#!/usr/bin/python2.5
z = {1:'a',2:'b',3:'c'}
for i in z:
  print z[i]

root@10.1.6.200:python# python 5.py 
a
b
c

2.通過字典items方法,獲取所有鍵值對,在利用元組拆分的方法獲得對應(yīng)值.

root@10.1.6.200:python# cat 5.py 
#!/usr/bin/python2.5
z = {1:'a',2:'b',3:'c'}
print z.items()
for m,n in z.items():
  print m,n 

root@10.1.6.200:python# python 5.py

[(1, 'a'), (2, 'b'), (3, 'c')]
1 a
2 b
3 c

相關(guān)文章

  • Python如何執(zhí)行精確的浮點數(shù)運算

    Python如何執(zhí)行精確的浮點數(shù)運算

    這篇文章主要介紹了Python如何執(zhí)行精確的浮點數(shù)運算,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • python爬取各類文檔方法歸類匯總

    python爬取各類文檔方法歸類匯總

    網(wǎng)絡(luò)爬蟲不僅需要能夠抓取HTML中的敏感信息,也需要有抓取其他類型文檔的能力這篇文章主要為大家匯總了python爬取各類文檔方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python實現(xiàn)AES加密和解密

    python實現(xiàn)AES加密和解密

    這篇文章主要為大家詳細介紹了python實現(xiàn)AES加密和解密,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 利用python3隨機生成中文字符的實現(xiàn)方法

    利用python3隨機生成中文字符的實現(xiàn)方法

    最近在學習python3,發(fā)現(xiàn)網(wǎng)上關(guān)于ptyhon3隨機生成中文的資料非常少,所以決定將自己實現(xiàn)的方法分享下,下面這篇文章主要給大家介紹了關(guān)于利用python3隨機生成中文字符的實現(xiàn)方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-11-11
  • python可視化大屏庫big_screen示例詳解

    python可視化大屏庫big_screen示例詳解

    提到數(shù)據(jù)可視化,我們會想到 Plotly、Matplotlib、Pyecharts等可視化庫,或者一些商用軟件Tableau、FineBI等等。如果你希望操作更簡單、展現(xiàn)效果更強大,那么這款工具 big_screen 更適合
    2021-11-11
  • 使用Python快速制作可視化報表的方法

    使用Python快速制作可視化報表的方法

    今天小編就為大家分享一篇使用Python快速制作可視化報表的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • 詳解Python中數(shù)據(jù)類型的轉(zhuǎn)換

    詳解Python中數(shù)據(jù)類型的轉(zhuǎn)換

    這篇文章主要為大家詳細介紹了Python中數(shù)據(jù)類型轉(zhuǎn)換的相關(guān)資料,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴可以了解一下
    2023-03-03
  • 淺析AST抽象語法樹及Python代碼實現(xiàn)

    淺析AST抽象語法樹及Python代碼實現(xiàn)

    Abstract Syntax Tree抽象語法樹簡寫為ATS,是相當于用樹結(jié)構(gòu)將代碼程式表現(xiàn)出來的一種數(shù)據(jù)結(jié)構(gòu),這里我們就來淺析AST抽象語法樹及Python代碼實現(xiàn)
    2016-06-06
  • 詳解python命令提示符窗口下如何運行python腳本

    詳解python命令提示符窗口下如何運行python腳本

    這篇文章主要介紹了詳解python命令提示符窗口下如何運行python腳本,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • pandas參數(shù)設(shè)置的實用小技巧

    pandas參數(shù)設(shè)置的實用小技巧

    這篇文章主要給大家介紹了關(guān)于pandas參數(shù)設(shè)置的實用小技巧,文中通過實例代碼結(jié)束的非常詳細,對大家學習或者使用pandas具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-08-08

最新評論

班玛县| 贺州市| 奈曼旗| 武定县| 射阳县| 烟台市| 徐汇区| 西安市| 中江县| 桂阳县| 信丰县| 灯塔市| 景德镇市| 鹤山市| 静海县| 安平县| 栖霞市| 阆中市| 湘西| 南阳市| 盐亭县| 天气| 股票| 报价| 凉山| 疏附县| 保定市| 同江市| 吉林省| 渭南市| 曲水县| 石嘴山市| 辽阳市| 庆阳市| 蒲城县| 新郑市| 金山区| 桂阳县| 甘孜| 鄢陵县| 昔阳县|