溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中的列表推導式怎么用

發布時間:2021-11-01 17:42:29 來源:億速云 閱讀:207 作者:小新 欄目:開發技術

小編給大家分享一下Python中的列表推導式怎么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

    1、列表生成式

    列表生成式即List Comprehensions,是Python內置的非常簡單卻強大的可以用來創建list的生成式。

    語法結構如下:

    # 普通的生成式
    [表達式 for 變量 in 舊列表]
    # 加條件的生成式
    [表達式 for 變量 in 舊列表 if 條件]
    # if...else條件的生成式
    [表達式 if 條件1 else 條件2for 變量 in 舊列表]

    1.1 案例

    過濾掉名詞字母不足4的名字,示例代碼如下:

    names = ["Tom", "Lily", "Jack", "Steven", "Bod"]
    # 在不是用列表生成式的過程
    news_names = []
    for name in names:
        if len(name) > 3:
            news_names.append(name)
    print(news_names)  # ['Lily', 'Jack', 'Steven']
    # 使用列表生成式
    new_names = [name for name in names if len(name) > 3]
    print(new_names)  # ['Lily', 'Jack', 'Steven']

    顯而易見,使用列表生成式可以節省很多行代碼

    將1-100的整數可以被3和5整除的數字,組成一個新的列表.示例代碼,示例代碼如下所示:

    # 將1-100的整數可以被3和5整除的數字,組成一個新的列表
    # 舊方法
    number_list = []
    for i in range(101):
        if i % 3 == 0 and i % 5 == 0:
            number_list.append(i)
    print(number_list)  # [0, 15, 30, 45, 60, 75, 90]
    
    # 列表生成式
    new_num_list = [i for i in range(101) if i % 3 == 0 and i % 5 == 0]
    print(new_num_list)  # [0, 15, 30, 45, 60, 75, 90]

    將0到10的奇數和0到5的偶數組成一個不重復的列表,示例代碼如下所示:

    # 將0到10的奇數和0到5的偶數組成一個不重復的列表
    # 舊方法
    news_number_list = []
    for x in range(10):
        if x % 2 != 0:
            for y in range(5):
                if y % 2 == 0:
                    news_number_list.append([x, y])
    print(news_number_list)
    # [[1, 0], [1, 2], [1, 4], [3, 0], [3, 2], [3, 4], [5, 0], [5, 2], [5, 4], [7, 0], [7, 2], [7, 4], [9, 0], [9, 2],[9, 4]]
    
    # 新方法
    news_num_list = [[x, y]
                     for x in range(10) if x % 2 != 0 for y in range(6) if y % 2 == 0]
    print(news_num_list)
    # [[1, 0], [1, 2], [1, 4], [3, 0], [3, 2], [3, 4], [5, 0], [5, 2], [5, 4], [7, 0], [7, 2], [7, 4], [9, 0], [9, 2],[9, 4]]

    同樣支持多個for語句,如果使用原來的那種方法的話層級結構太深了,使用生成式一行解決

    將列表中的數字大于8000的加200 小于等于8000的加500,示例代碼如下:

    # 將列表中的數字大于8000的加200 小于等于8000的加500
    number = [5000, 10000, 4500, 80000, 12000]
    
    # 舊方法
    for i in number:
        if i > 8000:
            i += 200
        else:
            i += 500
    print(number)  # [5000, 10000, 4500, 80000, 12000]
    
    # 新方法
    new_number = [i + 200 if i > 8000 else i + 500 for i in number]
    print(new_number)  # [5000, 10000, 4500, 80000, 12000]

    2、集合生成式

    語法結構如下所示:

    # 普通的生成式
    {表達式 for 變量 in 舊列表}
    # 加條件的生成式
    {表達式 for 變量 in 舊列表 if 條件}
    # if...else條件的生成式
    {表達式 if 條件1 else 條件2for 變量 in 舊列表}

    語法結構與列表生成式基本相同,但是因為集合不允許有重復,所有得出的結果自動去重

    3、字典生成式

    字典生成式與集合生成式和列表生成式的語法結構一致,唯一不同的是字典是以鍵值對的形式存放信息的,如下例子中我們將dict中的鍵值互換,

    示例代碼如下:

    # 將字典的鍵值對互換
    dict1 = {"a": "A", "b": "B", "c": "C"}
    # 就方法
    new_dict1 = {}
    for key, value in dict1.items():  # 返回一個存放鍵值對的元組
        new_dict1[value] = key
    print(new_dict1)  # {'A': 'a', 'B': 'b', 'C': 'c'}
    
    # 新方法
    news_dict1 = {value: key for key, value in dict1.items()}
    print(news_dict1)  # {'A': 'a', 'B': 'b', 'C': 'c'}

    item方法:返回可遍歷的(鍵, 值) 元組數組。

    看完了這篇文章,相信你對“Python中的列表推導式怎么用”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女