三元表示式,生成式,生成器表示式

2021-10-12 10:14:41 字數 2881 閱讀 9447

?使用函式來寫**

defmax2

(x,y)

:if x > y:

return x

else

:return y

res = max2(3,

4)print

(res)

# 4?使用三元表示式

x =3

y =4

res = x if x > y else y

print

(res(3,

4))# 4

?函式加三元表示式

defmax2

(x,y)

:return

"ok"

if x > y else

"no"

print

(max2(3,

4))# no

?使用 "for" 迴圈實現

l =[

]for i in

range(6

):print

(l)# [0, 1, 2, 3, 4, 5]

?生成式一行實現

l =[i for i in

range(6

)]print

(l)# [0, 1, 2, 3, 4, 5]

names =

["songhh"

,"shawnhh"

,"hai"

,"xing"

]?將"hh"結尾的放入乙個列表

l =[

len(i)

for i in names if i.endswith(

"hh")]

print

(l)# ['songhh', 'shawnhh']

?將其勸變為大寫

l =[i.upper(

)for i in names]

print

(l)# ['songhh', 'shawnshh', 'hai', 'xing']

?列印檔案中字元的最長長度

with

open

(r"a.txt"

,"rt"

,enconding=

"utf-8"

)as f:

nums =

[len

(i)for i in f]

print

(max

(nums)

)

?

res =

print

(res)# ?

info =

res =

print

(res)

#

sets =

print

(sets)

# print

(type

(sets)

)#

記憶體占用:

?製作乙個生成器

res =

(i for i in

range(6

))print

(res)

print

(next

(res)

)# 0

print

(next

(res)

)# 1

print

(next

(res)

)# 2

print

(next

(res)

)# 3

print

(next

(res)

)# 4

print

(next

(res)

)# 值取完丟擲異常 stopiteration

?列印檔案裡字元最長長度 (切換 "b" 模式比較位元組)

with

open

(r"a.txt"

,"rt"

,encoding=

"utf-8"

)as f:

res =

(len

(i)for i in f)

# 得到乙個生成器

print

(res)

# at 0x000001949ad7aac8>

print

(max

(res)

)

?統計檔案的字元個數 (切換 "b" 模式統計位元組)

with

open

(r"aaa.txt"

,"rt"

,encoding=

"tuf-8"

)as f:

lens =

0for i in f:

lens +=

len(i)

print

(lens)

?使用列表生成式 "[ ]" 配合 "sum( )" 函式

res =

sum(

[len

(i)for i in f]

)print

(res)

?使用生成器表示式 "( )" 配合 "sum( )" 函式

res =

sum(

(len

(i)for i in f)

)? "sum( )"會自動迭代取出生成器物件裡面的值進行相加, so 可以不用加兩層括號

res =

sum(

len(i)

for i in f)

print

(res)

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

1三元表示式 三元表示式是python為我們提供的一種簡化 的解決方案,語法如下 res 條件成立時返回的值 if 條件 else 條件不成立時返回的值 針對以下場景 def max2 x,y if x y print x else print y max2 1,2 用三元表示式可以一行解決 x 1...

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

一,生成器 1,生成器的本質就是迭代器 2,生成器的特點和迭代器一樣.取值方式和迭代器一樣 next send 給上乙個yield傳值 3,生成器一般由生成器函式或者生成器表示式來建立 4,其實就是手寫的迭代器 只要函式內部包含有yield關鍵字,那麼函式名 的到的結果就是生成器,並且不會執行函式內...

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

三元表示式是python為我們提供的一種簡化簡單的流程控制的解決方案 而且在簡化 的基礎上,還不失 的可讀性 條件成立時返回的值 if 條件 else 條件不成立時返回的值 x if x y else y 如果x y就執行x,否則執行y需求 接收兩個數字,返回較大的那個數 不採用三元表示式 def ...