什麼是三元表示式?
可以將if...else分支語句合併為一行**
為什麼要使用三元表示式?
三元表示式是python為我們提供的一種簡化**的解決方案
怎麼用三元表示式?
res = 條件成立返回的值 if 判斷條件 else 條件不成立返回的值
應用場景
#不使用三元表示式方法
def max2(x, y):
if x > y:
return x
else:
return y
res = max2(1, 2)
print(res)
#結果為
2#使用三元表示式時
x = 1
y = 2
res = x if x > y else y
print(res)
#結果為
2# 需求: 讓使用者輸入使用者名稱,輸入的使用者如果不是bing綴新增_dsb
username = input('請輸入你的使用者名稱:')
res = username if username == 'bing' else username + '_dsb'
print(res)
什麼是列表生成式?
可以一行實現生成列表。
為什麼要使用列表生成式?
列表生成式是python為我們提供的一種簡化**的解決方案 , 用來快速生成列表
怎麼用列表生成式?
語法:
list = [取出的每乙個值,任意值+ for + 可迭代物件中取出的每乙個值 in 可迭代物件]
for的右邊是迴圈次數,並且可以取出可迭代物件中每乙個值# for的左邊可以為當前列表新增值
應用場景
#不使用列表生成式
egg_list =
for i in range(10):
print(egg_list)
#結果為
['雞蛋0', '雞蛋1', '雞蛋2', '雞蛋3', '雞蛋4', '雞蛋5', '雞蛋6', '雞蛋7', '雞蛋8', '雞蛋9']
#使用列表生成式
egg_list = ['雞蛋%s'%i for i in range(10)]
print(egg_list)
#結果為
['雞蛋0', '雞蛋1', '雞蛋2', '雞蛋3', '雞蛋4', '雞蛋5', '雞蛋6', '雞蛋7', '雞蛋8', '雞蛋9']
生成器表示式(生成式)
建立乙個生成器物件有兩種方式,一種是呼叫帶yield關鍵字的函式,另一種就是生成器表示式,與列表生成的語法格式相同,只需將換成()
語法:() ---> 返回生成器
(line for line in range(1, 6)) ---> g生成器(1, 2, 3, 4, 5)
生成器表示式與列表生成器的對比
#1.對比列表生成式返回的是乙個列表,生成器表示式返回的是乙個生成器物件
list = [x*x for x in range(3)]
print(list)
g = (x*x for x in range(3))
print(g)
#結果為
[0, 1, 4]
at 0x000001e821b321c8>
#對比列表生成式,生成器表示式的優點自然是節省記憶體(一次只產生乙個值在記憶體中)
#總結:列表生成式與生成器表示式優缺點以及應用場景
#列表生成式
#優點:因為其返回的是乙個列表,所以可以依賴索引取值
#缺點:占用記憶體空間大(一次性將所有值讀入記憶體),容易造成資源浪費
#生成器表示式
#優點:占用記憶體空間小,節省資源(一次只取乙個值)
#缺點:去某個特定的值不方便
三元表示式 列表生成式 生成器表示式
1三元表示式 三元表示式是python為我們提供的一種簡化 的解決方案,語法如下 res 條件成立時返回的值 if 條件 else 條件不成立時返回的值 針對以下場景 def max2 x,y if x y print x else print y max2 1,2 用三元表示式可以一行解決 x 1...
三元表示式,列表生成式,字典生成式,生成器表示式
三元表示式 條件成立時的返回值 if 條件 else 條件不成立時的返回值 def max2 x,y if x y return x else return y 表示式 x 10 y 20 res x if x y else y print res 列表生成式 中括號生成的 l item 2 for...
三元表示式,生成式,生成器表示式
使用函式來寫 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...