網站首頁 編程語言 正文
列表生成式基礎語法
[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 6
3 8 11
6 9 15
keys = ['a','c','f']
vals = [1,7,3]
D2 = {}
for (k,v) in zip(keys,vals): D2[k]=v
print(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 spring
1 summer
2 winter
關于filter 、 reduce,具體可查看上一篇文章
python高階函數使用教程示例
原文鏈接:https://www.jianshu.com/p/483c58441020
- 上一篇:nginx之內存池的實現_nginx
- 下一篇:Qt常用容器類的使用_C 語言
相關推薦
- 2023-03-17 Python導入Excel表格數據并以字典dict格式保存的操作方法_python
- 2022-07-14 android?viewflipper實現左右滑動切換顯示圖片_Android
- 2022-08-15 創建型設計模式之建造者模式
- 2023-03-29 Label?Propagation算法原理示例解析_python
- 2023-11-16 【Python】從列表/dataframe/pandas中刪除 nan
- 2022-07-30 Mybatis-Plus之代碼生成器(模板,可直接套用超級好用,但是建議初學者少用)
- 2022-06-16 C#中執行SQL的幾種方法講解_C#教程
- 2022-12-24 Golang實現組合模式和裝飾模式實例詳解_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支