2022年1月4日 星期二

python列表生成式與列表生成器

python列表生成式與列表生成器 2021-08-15 05:14:04 字數 2275 閱讀 2223 列表生成式:會將所有的結果全部計算出來,把結果存放到記憶體中,如果列表中資料比較多,就會佔用過多的記憶體空間,可能會導致memoryerror記憶體錯誤或者導致程式在執行時出現卡頓的情況 列表生成器:會建立一個列表生成器物件,不會一次性的把所有結果都計算出來,如果需要獲取資料,可以使用next()函式來獲取,但是需要注意,一旦next()函式獲取不到資料,會導致出現stopiteration異常錯誤,可以使用for迴圈遍歷列表生成器,獲取所有資料 需要視情況而定,如果資料量比較大,推薦使用生成器 python2.7中就是range(生成式) 和 xrange(生成器)的區別 列表生成式是快速生成一個列表的一些公式 在列表中存放0~100的數: 普通的列表生成: numbers= for x in range(0,101): print(numbers) 用列表生成式生成列表:[要放入列表的資料 簡單的表示式1 表示式2] #x for x in range(0,101) for迴圈遍歷出來的值,放入列表中 numbers=[x for x in range(0,101)] print(numbers) 列表中存放0~100的偶數: 普通方法生成列表: for x in range(0,101): if x%2==0: print(numbers) 用列表生成式生成列表: #for迴圈遍歷0~101的數字,如果數字對2取餘==0,表示是偶數,x放在列表中 numbers=[x for x in range(0,101)if x%2==0] print(numbers) 找出列表list1=['asd','adf','dafg','acbo']帶有a的字元 普通寫法: rs_list= for s in list1: if 'a' in s: print(rs_list) 列表生成式: list2=[x for x in list1 if 'a' in x] 列表生成式支援雙層for迴圈 list3=[x*y for x in range(0,10) for y in range(20)] print(list3) 列表生成式和列表生成器的區別 列表生成式: #列表生成式 直接把10000個數字建立好,放在列表中 list5=[x for x in range(10000)] print(list5) 列表生成器: #generator 列表生成器,生成一個物件,不會把資料直接建立出來,當for迴圈遍歷的時候,生成器物件會呼叫next()函式,獲取下一個要生成的資料 list6=(x for x in range(10)) print(list6) #生成器物件可以呼叫next()函式獲取下一個要生成的數字,如果next()函式沒有獲取到下一個資料,會丟擲異常 stopiteration,程式出錯 #生成器物件可以使用for迴圈遍歷,實現next()函式的功能,不停地獲取下一個資料,如果沒有下一個資料迴圈結束 #next()在python2中執行generator.next(),在python3中是私有函式執行generator.__next__() # print(list6.__next__()) # print(list6.__next__()) # print(list6.__next__()) # print(list6.__next__()) for x in list6: print(x) 在pytnon2中執行以下**: a=list(xrange(3)) b=range(3) print(a) print(b) 執行結果 [0, 1, 2] [0, 1, 2] 說明xrange執行出是一個物件,需用list轉換為列表;range執行出直接是一個列表 列表生成式,列表生成器 coding utf 8 列表生成式是快速生成一個列表一些公式 numbers for x in range 0 101 print num... Python(八)切片 迭代 列表生成式 生成器 一 切片 在寫程式的時候經常會用到取某個列表或者元組中的某一個元素或者是某一段元素,可以使用迴圈實現,在python中也可以使用切片實現。... 列表解析式和生成器表示式 列表解析式 expr for iter var in iterable expr for iter var in iterable if c... 相關推薦 python中的列表推導與生成器 Day24 列表和生成器表示式 PYTHON 生成器 Python生成器 python生成器

沒有留言:

張貼留言

Python 標準函式庫 (Standard Library

Python 標準函式庫 (Standard Library) — Python 3.12.0a3 說明文件 ...