三元表示式,生成式

2021-10-14 10:19:27 字數 2153 閱讀 4150

# 條件,條件成立返回值,不成立返回值

deffunc

(x,y)

:if x > y:

return x

else

:return y

func(1,

2)# 等同於三元表示式

# 條件成立就返回左邊的值,不成立就是右邊的值

x =1

y =2

res = x if x > y else y

print

(res)

2def

func

(x,y)

: res = x if x > y else y

return res

res = func(1,

5)print

(res)

# 列表生成式

list1 =

['sun_dsb'

,'egon_dsb'

,'howard'

]list2 =

for name in list1:

if name.endswith(

'dsb'):

print

(list2)

# 簡化

list1 =

['sun_dsb'

,'egon_dsb'

,'howard'

] list2 =

[name for name in list1 if name.endswith(

'dsb')]

# 條件只能為真,不能有else

print

(list2)

# 快速生成字典

keys =

['name'

,'age'

,'hobby'

]dict

=print

(dict

)items =[(

'name'

,'sun'),

('age',18

),('hobby'

,'football')]

dic =

print

(dic)

lis =

['age'

,'sun'

,'hobby'

]dic =

print

(dic)

# 沒有元組生成式
# 第一種方式

with

open

(r'biji.txt'

,mode=

'rt'

,encoding=

'utf-8'

)as f:

res =

0for line in f:

res +=

len(line)

print

(res)z

# 第二種方式

with

open

(r'biji.txt'

,mode=

'rt'

,encoding=

'utf-8'

)as f:

res =

sum(

len(line)

for line in f)

print

(res)

# 將所有字元變為大寫

# 將列表裡的'dsb'刪掉1.

list1 =

['sun_dsb'

,'egon_dsb'

,'howard'

]list2 =

[name.replace(

'_dsb',''

)for name in list1]

print

(list2)2.

list1 =

['sun_dsb'

,'egon_dsb'

,'howard'

]list2 =

[name.upper(

)for name in list1]

print

(list2)

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

使用函式來寫 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 ret...

三元表示式 生成式 匿名函式

def max2 x,y if x y return x else return y res max2 10,20 x 10 y 20 res x if x y else y print res res ok if false else no print res 1 列表生成式 l for i in...

列表生成式與三元表示式

三元表示式與列表生成式可簡寫 三元表示式 age 19 條件滿足取前面,不滿足取後面 p 成年人 if age 18 else 未成年人 print p 列表生成式 表示式 for 變數 in 列表 if 條件 out exp res for out exp in input list if con...