python -三元表示式、列表生成式、字典生成式

HammerZe發表於2021-11-18


image


1、三元表示式

  • 定義格式:true_return if condition else false_return
  • if 後條件成立返回,true_return,不成立返回false_return
  • 當功能需求僅僅是二選一的情況下,推薦使用三元表示式

例項如下:

res = '堅持學習python' if 3>1 else '不學了!'
print(res)
# 結果
# 堅持學習python

'''
三元表示式:
將符合條件的值返回,用一個變數接收
條件成立返回true_return
條件不成立返回false_return
'''

2、列表生成式

  • 定義:

    • 列表生成式提供了一種簡明扼要的方法來建立列表。它的結構是在一箇中括號裡包含一個表示式,然後是一個for語句,然後是 0 個或多個 for 或者 if 語句。表示式可以是任意的,意思是你可以在列表中放入任意型別的物件。返回結果將是一個新的列表。
  • 格式:

    • [表示式 for 變數 in 列表 if 條件]

    例項1如下:

    l = [1,2,3,4,5]
    # for迴圈實現
    l1 = []
    for i in l:
        l1.append(i)
    print(l1)
    
    
    # 列表生成成式實現
    res = [x for x in l]
    print(res)
    
    #結果
    [1, 2, 3, 4, 5]
    [1, 2, 3, 4, 5]
    
    • 列表執行圖示:

image


例項2如下:

# 輸出100以內的偶數
# for迴圈解決
get_num = []
for i in range(0,100,2):
    get_num.append(i)
print(get_num)

# 列表生成式
get_num_lst = [x for x in range(100) if x%2 ==0]
print(get_num_lst)

3、字典生成式

  • 定義:同列表生成式一樣,字典生成式是用來快速生成字典的。
  • 格式:{字典內容+迴圈條件+ i f 判斷條件(產生條件)}

例項如下:

# for迴圈做法
lst_info_g = ['name','age','number']
lst_info_v = ['HammerZe',18,'199****1234']
lst_info_dict = {}
for i in range(len(lst_info_g)):
    # 讓lst_info_g裡的元素和lst_info_v裡的元素一一對應
    lst_info_dict[lst_info_g[i]] = lst_info_v[i]
print(lst_info_dict)
# 結果
{'name': 'HammerZe', 'age': 18, 'number': '199****1234'}

#字典生成式
lst_info = [('name','HammerZe'),('age',18),('number','199****1234')]
dict_info = {k:v for k,v in lst_info}
print(dict_info)
# 結果
{'name': 'HammerZe', 'age': 18, 'number': '199****1234'}

有 i f的字典生成式:

例項如下:

lst_info = ['HammerZe','jason','tony','tom']
# 用列舉的方法,獲取字典的k,當獲取元素為HammerZe時,不列印輸出剩下的元素
dict_info = {k:v for k,v in enumerate(lst_info) if v!='HammerZe' }
print(dict_info)
# 結果
{1: 'jason', 2: 'tony', 3: 'tom'}


''' enumerate()列舉方法
	該方法針對for迴圈使用,每次會產生兩個結果,預設從0開始,可以通過start修改起始位置,從幾開始!
	'''

image 持續更新中···

相關文章