1 三元運算符
格式:
變量=條件返回True的結果 if 條件 else 條件返回False的結果
條件:
1 必須有結果
2 必須要有if和else
3 簡單的條件判斷
# a=1 # b=5 # c=a if a>b else b # print(c) # def max_test(a,b): # return a if a>b else b print(max_test(3,50))
2 列表表達式
格式:
[每一個元素或則和元素相關的操作 for 元素 in 可迭代數據類型] 遍歷后挨個處理
[滿足條件的元素相關的操作 for 元素 in 可迭代對象 if 元素相關的條件] 篩選條件
#30以內能被3整除的數 # lista=[i for i in range(30) if i%3==0] # print(lista) # # #30以內能被3整除的數的平方 # listb=[ii*ii for ii in range(30) if ii%3==0] # print(listb) #查找嵌套列表內 含有2個e字母的元素 # names=[['Tom','Billy','Jefferson','Andrew','Wesley','Steven','Joe'],['Alice','Jill','Ana','Wendy','Jennifer','Sherry','Eva']] # # ret=[name for lst in names for name in lst if name.count('e')==2] # print(ret)
3 生成器表達式
格式: 同列表表達式
#10內數字的平方列表 # g_04=(i*i for i in range(10)) # #g_04=(i*i for i in range(10))並沒有直接執行,是下方的for循環開始后才調用.__next__方法的 # for i in g_04: # print(i)
4 字典表達式
# dict_01={'a':10,'b':34} # dict_02={dict_01[k]:k for k in dict_01} # print(dict_02) #合並大小寫對應的value值 將k統一成小寫 # dict_03={'a':10,'b':34,'A':7,'Z':3} # dict_04={k.lower():dict_03.get(k.lower(),0)+dict_03.get(k.upper(),0) for k in dict_03} # print(dict_04)
5 集合表達式
# set_01={x**2 for x in [1,-1,2]} # print(set_01)