迭代器,三元表示式,列表推導式,字典生成式

2021-10-02 02:19:06 字數 2826 閱讀 5992

迭代器

指定資料建立迭代器(使用iter()和next())

x =[1

,2,3

]y =

iter

(x)for i in y:

print

(i,end="")

print

()

迭代物件:定義魔術方法:__next__()__iter()__

classa:

def__init__

(self)

: self.x=

0def

__next__

(self)

: self.x +=

1if self.x >10:

raise stopiteration

return self.x

def__iter__

(self)

:return self

a = a(

)print

(list

(a))

#for i in a:

# print(i)

# [1,2,3,4,5,6,7,8,9,10]

classa:

def__init__

(self,x)

: self.x=x

def__iter__

(self)

:for i in

range

(self.x)

:yield i

a = a(10)

print

(list

(a))

# for i in a:

# print(i)

# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

三元表示式(三目表示式)
x =

7if x ==7:

print

(x)else

:print

(x**2)

# 不推薦使用,寫**還是盡量整潔易懂

print

(x)if x ==

7else

print

(x**

2)

列表推導式
"""

生成平方數系列

"""squarelist =

[x**

2for x in

range(10

)]print

(squarelist)

#

"""

求序列絕對值

"""l =[-

2,3,

2,32,

0,23,

89,34,

98]absl =

[x if x>

0else

-x for x in l]

print

(absl)

#

"""

求序列中大於0的數的平方

"""squarel =

[x**

2for x in l if x>0]

print

(squarel)

#

"""

求全部可能組合

"""girls =

['mary'

,'lily'

,'ann'

]boys =

['tom'

,'john'

,'brown'

]couples =

[(g,b)

for g in girls for b in boys]

print

(couples)

#

"""

求矩陣乘積 略微燒腦

"""m =[[

1,2,

3],[

4,5,

6],[

7,8,

9]]n =[[

2,4,

6],[

1,3,

5],[

7,8,

9]]squarelist =[[

sum(m[row]

[i][col]

for i in

range(3

)])for col in

range(3

)]for row in

range(3

)]print

(squarelist)

#

字典推導式
seasons =

['spring'

,'summer'

,'autumn'

,'winter'

]d =

print

(d)#

集合推導式
"""

求兩個集合的交集

"""a =

b =aandb =

print

(aandb)

#

"""

求集合元素的平方

"""squarea =

print

(squarea)

#

"""

求兩個集合的並集 該方法有侷限性

"""ahb =

print

(ahb)

#

三元表示式 列表推導式 生成器表示式

一 三元表示式 def max2 x,y if x y return x else return y res 條件成立時執行的表示式 if 條件 else 條件不成立時執行的表示式 x 11 y 22 res x 12 if x y else y 100 print res 二 列表推導式 1 示例...

三元表示式 列表推導式 字典生成式 生成器 遞迴

目錄三元表示式 列表推到式 字典生成式 生成器遞迴 可迭代物件 可迭代的物件,內建有 iter 方法的物件都是可迭代物件,除了數字型別,所有資料型別都是可迭代物件。python內建str list tuple dict set file都是可迭代物件 迭代器物件 執行可迭代物件的 iter 方法,執...

三元表示式 列表推導式和生成器表示式

1 三元表示式 2 列表推導式和生成器表示式 def my max x,y low的寫法 if x y return x else return yx 10y 20res x if x y else y 三元表示式 print res name input strip res sb if name ...