列表生成式,列表生成器

2021-08-15 05:00:36 字數 2379 閱讀 3711

# -*- coding: utf-8 -*-

# 列表生成式是快速生成乙個列表一些公式

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

的偶數numbers =

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','sdf','dafg','fgsh','hjk','jkal','aqaw','waer','adc','acd']

# 普通寫法,取出所有帶a的

rs_list =

for s in list1:

if 'a'

in s:

print(rs_list)

# 列表生成式 取出所有帶a的

list2 = [x for x in list1 if

'a'

in x]

print(list2)

for x in

range(0,10):

for y in

range(10,20):

x *y

# 支援雙層

for迴圈

list3 = [x*y for x in

range(0,10) for y in

range(10,20)]

print(list3)

# 字典生成式

# dict_1.items()

list4 = [('name','zhansgan'),('age',22),('phone',110)]

# for

迴圈遍歷列表,將列表中小元組的

key和

value

取出,作為字典中的

key:value

dict_1 =

print(dict_1)

# 列表生成式 直接把

100000

個數字建立好,放在列表中

(記憶體中

)list6 = [x for x in

range(100000)]

# print(list6)

# generator

列表生成器

# 生成的是乙個物件,不會把資料直接建立出來,當

for遍歷的時候,生成器物件會呼叫

next()

函式,獲取下乙個要生成的資料

generator = (x for x in

range(10))

# 生成式物件可以呼叫

next()

函式獲取下乙個要生成的數字,如果

next()

函式沒有獲取到下乙個資料,會丟擲異常

stopiteration

,程式出錯

# 生成式物件可以使用

for遍歷,使用

next()

不停地獲取下乙個資料,如果沒有下乙個資料迴圈結束

for x in generator:

print(x)

'''列表生成式:會將所有的結果全部計算出來,把結果存放到記憶體中,如果列表中資料比較多,會占用過多的記憶體空間,可能會導致

memoryerror

記憶體錯誤或者導致程式在執行時出現卡頓的情況

列表生成器:會建立乙個列表生成器物件,不會一次性的把所有結果都計算出來,如果序號獲取資料,可以使用

next()

函式來獲取,但是需要注意,一旦

next()

函式獲取不到資料,會導致出現

stopiteration

異常錯誤,可以使用

for迴圈遍歷生成器物件,獲取所有資料

需要視情況而定,如果資料量比較大,推薦使用生成器

在python2.7

中就是range(

生成式)

和xrange(

生成器)

的區別'''

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

列表生成式 會將所有的結果全部計算出來,把結果存放到記憶體中,如果列表中資料比較多,就會占用過多的記憶體空間,可能會導致memoryerror記憶體錯誤或者導致程式在執行時出現卡頓的情況 列表生成器 會建立乙個列表生成器物件,不會一次性的把所有結果都計算出來,如果需要獲取資料,可以使用next 函式...

列表生成式和生成器生成式

列表生成式 也就是用一對中括號括起來將生成列表的語句放入括號內來生成乙個列表。例如我想建立乙個100個雞蛋的列表 在其中還可以加判斷條件 下面這個例題可以將列表生成式和正常的for迴圈語句建立列表進行鮮明的對比 for迴圈寫法 經過上面的對比我們發現,其優點就是語法簡潔。生成器生成式 生成器生成式的...

列表生成器

coding utf 8 並不會一次性的將所有的結果計算出來,存放到記憶體當中,而是在使用某一些值得時候,才會去動態計算結果並返回,而沒有使用的值是不會計算的。print xrange 1,10 print range 1,10 generator x x for x in xrange 1,4 p...