亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

有哪些方式是可迭代的:

1.文件操作

   我們讀取文件的時候,會用到一個readline()方法,其實它就是一個迭代器,它會返回當前的數(shù)據(jù),然后自動的調用內置的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!"

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

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

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

read方法和readline方法,
read()方法把整個文件的內容放到字符串里
readline()方法則把文件的內容按照行為單位放到列表里。
一般要替換文件里的某個字符的話,最好有readline,然后用循環(huán)把一行一行內容循環(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

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


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)進行迭代,依次把列表里的內容取出來,賦值給最左邊的x,然后執(zhí)行x+10的操作,
并且把執(zhí)行好的結果保存在列表里。等range(10)迭代完以后就新生成了一個列表,結果就是[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 更加精簡,而且運行的更快(往往速度回快一倍),因為他們的迭代在解析器內部是以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ù)(索引)的方法進行遍歷

也就是迭代序列索引,注:迭代,重復執(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方法,獲取所有鍵值對,在利用元組拆分的方法獲得對應值.

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

相關文章

  • python 動態(tài)生成變量名以及動態(tài)獲取變量的變量名方法

    python 動態(tài)生成變量名以及動態(tài)獲取變量的變量名方法

    今天小編就為大家分享一篇python 動態(tài)生成變量名以及動態(tài)獲取變量的變量名方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 淺談python量化 雙均線策略(金叉死叉)

    淺談python量化 雙均線策略(金叉死叉)

    這篇文章主要介紹了淺談python量化 雙均線策略(金叉死叉),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python實現(xiàn)位圖分割的效果

    Python實現(xiàn)位圖分割的效果

    目前網絡上大多為用C++或者Matlab編寫實現(xiàn)位圖分割,所以本文將使用Python實現(xiàn)位圖分割這一效果,代碼簡單易懂,感興趣的小伙伴可以關注一下
    2021-11-11
  • Python爬蟲必備之XPath解析庫

    Python爬蟲必備之XPath解析庫

    今天給大家?guī)淼氖荘ython爬蟲的相關知識,文章圍繞著XPath解析庫展開,文中有非常詳細的代碼示例及介紹,需要的朋友可以參考下
    2021-06-06
  • 使用python PIL庫批量對圖片添加水印的過程詳解

    使用python PIL庫批量對圖片添加水印的過程詳解

    平常我們想給某些圖片添加文字水印,方法有很多,也有很多的工具可以方便的進行,今天主要是對PIL庫的應用,結合Python語言批量對圖片添加水印,文章通過代碼示例給大家介紹的非常詳細,感興趣的同學可以參考一下
    2023-11-11
  • 帶你了解Python妙開根號的三種方式

    帶你了解Python妙開根號的三種方式

    這篇文章主要為大家介紹了Python妙開根號的三種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Python與shell的3種交互方式介紹

    Python與shell的3種交互方式介紹

    這篇文章主要介紹了Python與shell的3種交互方式介紹,本文講解了os.system、os.popen、subprocess模塊等3種方法,需要的朋友可以參考下
    2015-04-04
  • Python?range()?函數(shù)用法詳解

    Python?range()?函數(shù)用法詳解

    range()是python內置函數(shù)它能返回一系列連續(xù)增加的整數(shù),它的工作方式類似于分片,可以生成一個列表對象,這篇文章主要介紹了Python?range()?函數(shù)用法,需要的朋友可以參考下
    2023-03-03
  • 一文帶你了解Python中Scikit-learn庫的使用

    一文帶你了解Python中Scikit-learn庫的使用

    Scikit-learn是Python的一個開源機器學習庫,它支持監(jiān)督和無監(jiān)督學習,本文主要來深入探討一下Scikit-learn的更高級的特性,感興趣的小伙伴可以了解下
    2023-07-07
  • Python格式化輸出字符串方法小結【%與format】

    Python格式化輸出字符串方法小結【%與format】

    這篇文章主要介紹了Python格式化輸出字符串方法,結合實例形式總結分析了使用%與format函數(shù)進行字符串格式化操作相關實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2018-10-10

最新評論