程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python列表生成器常用迭代器示例詳解

編輯:Python

目錄

列表生成式基礎語法

1. 使用列表生成式,一行解決for循環

2. 雙層循環

3. 加判斷語句,條件過濾

4. 加入函數

5. 常見幾種迭代器:range、 zip 、 enumerate 、 filter 、 reduce

列表生成式基礎語法

[exp for iter_var in iterable (if conditional)]

原理:

首先迭代 iterable 裡所有內容,每一次迭代,都把iterable裡相應的內容放在iter_var中,再把表達式exp應用該iter_var的內容,根據條件進行篩選

最後用 表達式的計算值 生成一個新的列表

優先於for和if循環:

1、比for循環快得多

2、被認為比循環和映射函數更具有python特性

3、列表生成式的語法更容易閱讀

1. 使用列表生成式,一行解決for循環# 實現[1,2,3,4,5]的列表alist1 = list(range(1,6))print(alist1)# 實現[1,4,9,16,25,36,49]的列表alist2 = []for i in range(1,8): alist2.append(i*i)print(alist2)# 用一行實現alist = [i*i for i in range(1,8)]print(alist)#結果:[1, 2, 3, 4, 5][1, 4, 9, 16, 25, 36, 49][1, 4, 9, 16, 25, 36, 49]2. 雙層循環list2 = [x+y for x in range(1,5) for y in range(1,6)]#結果:[2, 3, 4, 5, 6, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8, 5, 6, 7, 8, 9]3. 加判斷語句,條件過濾list3 = [x for x in range(1,10) if x>5]print(list3)#結果:[6, 7, 8, 9]4. 加入函數L = ['Heli','JACK','ab']l1 = [i.lower() for i in L]print(l1)#結果:['heli', 'jack', 'ab']5. 常見幾種迭代器:range、 zip 、 enumerate 、 filter 、 reduce

zip生成列表,生成字典

zip()函數接受一系列可迭代對象作為參數,將不同對象中相對應的元素打包成一個元組(tuple),返回由這些元組組成的list列表

l1 = [1,3,6]l2 = [5,8,9]for (x,y) in zip(l1,l2): print(x,y,x+y)#結果:1 5 63 8 116 9 15keys = ['a','c','f']vals = [1,7,3]D2 = {}for (k,v) in zip(keys,vals): D2[k]=vprint(D2)#結果:{'a': 1, 'c': 7, 'f': 3}

enumerate() 函數用於將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在for循環中

enumerate(seq, [start=0]) ,返回枚舉對象

seasons = ['spring', 'summer', 'winter']a = list(enumerate(seasons))for i,element in enumerate(seasons): print(i,element)#結果:0 spring1 summer2 winter

關於filter 、 reduce,具體可查看上一篇文章

python高階函數使用教程示例

以上就是python列表生成器常用迭代器示例詳解的詳細內容,更多關於python列表生成器迭代器的資料請關注軟件開發網其它相關文章!



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved