成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

盤點Python列表生成式的三種方法

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

一、前言

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

二、案例分析

三種方法

要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))。

  1. print(list(range(1, 11))) 

 

如果要生成[1x1, 2x2, 3x3, …, 10x10]怎么做?

1. 方法一是循環:

  1. L = [] 
  2. for x in range(1, 11): 
  3.     L.append(x * x) 
  4. print(L) 

但是循環太繁瑣,而列表生成式則可以用一行語句代替循環生成上面的list:

  1. print([x * x for x in range(1, 11)]) 

 

寫列表生成式時,把要生成的元素x * x放到前面,后面跟for循環,就可以把list創建出來,十分有用,多寫幾次,很快就可以熟悉這種語法。

for循環后面還可以加上if判斷,這樣就可以篩選出僅偶數的平方:

  1. for x in range(1, 11): 
  2.     L.append(x * x) 
  3.  
  4. print([x * x for x in range(1, 11) if x % 2 == 0]) 

 

2. 使用兩層循環,可以生成全排列

L = []for x in range(1, 11): L.append(x * x)print( [m + n for m in 'ABC' for n in 'XYZ'])

 

三層和三層以上的循環就很少用到了。

3. 運用列表生成式,可以寫出非常簡潔的代碼。

例如,列出當前目錄下的所有文件和目錄名,可以通過一行代碼實現:

  1. import os  # 導入os模塊,模塊的概念后面講到 
  2.  
  3. print([d for d in os.listdir('.')])  # os.listdir可以列出文件和目錄 

 

for循環其實可以同時使用兩個甚至多個變量,s比如dict的items()可以同時迭代key和value:

  1. d = {'x''A''y''B''z''C'
  2. for k, v in d.items(): 
  3.     print(k, '=', v) 

 

因此,列表生成式也可以使用兩個變量來生成list:

  1. d = {'x''A''y''B''z''C' } 
  2. print([k + '=' + v for k, v in d.items()] 

 

最后把一個list中所有的字符串變成小寫:

  1. L = ['Hello''World''IBM''Apple'
  2. print([s.lower() for s in L]) 

 

如果list中既包含字符串,又包含整數,由于非字符串類型沒有lower()方法,所以列表生成式會報錯:

  1. L = ['Hello''World', 18, 'Apple', None] 
  2. print([s.lower() for s in L]) 

 

使用內建的isinstance函數可以判斷一個變量是不是字符串:

  1. x = 'abc' 
  2. y = 123 
  3. print(isinstance(x, str)) 
  4.  
  5. print(isinstance(y, str)) 

 

三、練習和思考

請修改列表生成式,通過添加if語句保證列表生成式能正確地執行。

  1. # -*- coding: utf-8 -*- 
  2. L1 = ['Hello''World', 18, 'Apple', None] 
  3. L2=??? 
  4.  
  5. # 期待輸出: ['hello''world''apple'
  6. print(L2) 

練習參考代碼 :

  1. L2 =[s.lower() for s in L1 if isinstance(s, str) ] 

運行結果:

 

注:

運用列表生成式,可以快速生成list,可以通過一個list推導出另一個list,而代碼卻十分簡潔。

四、總結

本文基于Python基礎,介紹了列表生成式,以案例為主,三種方法進行講解。

分析不同方法的實現一樣的效果。實際案例中需要注意的點,遇到的難點,提供有效的解決方法。最后通過練習和思考,對列表生成式加深理解。

歡迎大家積極嘗試,有時候看到別人實現起來很簡單,但是到自己動手實現的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。

代碼很簡單,希望對你學習有幫助。

本文轉載自微信公眾號「Go語言進階學習」,可以通過以下二維碼關注。轉載本文請聯系Go語言進階學習公眾號。

 

責任編輯:武曉燕 來源: Go語言進階學習
相關推薦

2021-02-06 11:26:55

Python開發list

2022-07-13 16:06:16

Python參數代碼

2024-11-15 07:00:00

Python發送郵件

2022-01-20 09:58:44

Python元素列表

2009-07-08 12:56:32

編寫Servlet

2010-09-02 10:02:17

PHP

2010-09-14 15:10:49

CSS注釋

2009-12-11 18:49:39

預算編制博科資訊

2011-04-18 15:32:45

游戲測試測試方法軟件測試

2023-08-14 17:58:13

RequestHTTP請求

2022-04-28 07:26:17

PythonDocker容器

2011-06-10 10:43:12

Ubuntu應用安裝

2009-06-23 10:45:18

Hibernate支持

2021-09-10 18:09:42

SQL注入漏洞網絡攻擊

2023-09-25 15:08:43

Python方離群值

2023-05-16 16:07:07

大數據數據管理工具

2021-07-13 12:31:27

IT組織改進首席技術官

2021-12-20 07:11:26

Java List排序 Java 基礎

2021-10-09 06:59:36

技術MyBatis數據

2010-10-20 13:52:07

SQL Server數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产乱精品一区二区三区 | 国产日韩精品在线 | 亚洲a一区二区 | 久久久久99| 一区二区三区中文字幕 | 成人午夜激情 | 成人在线观看欧美 | 天天澡天天狠天天天做 | 麻豆亚洲 | 日韩激情在线 | 激情一区二区三区 | 日本一区二区三区免费观看 | 精品国产女人 | 久久福利电影 | 精品日韩欧美一区二区 | 精品欧美一区免费观看α√ | 中文字幕日韩av | 九色av| 亚洲精品无 | 成人国产在线观看 | 蜜桃视频在线观看www社区 | 69xxx免费| 国产综合网站 | 美国一级片在线观看 | 久久99久久99久久 | 国产欧美久久精品 | 老司机精品福利视频 | 欧美精品在欧美一区二区少妇 | 亚洲精品成人网 | 在线观看www高清视频 | 日韩国产一区二区三区 | 精品视频一区二区在线观看 | 亚洲视频免费在线观看 | 精品国产一级 | 色综合色综合色综合 | 男人天堂视频在线观看 | аⅴ资源新版在线天堂 | 国产aⅴ精品| 日本久久综合网 | 国产精品久久亚洲7777 | 老外几下就让我高潮了 |