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

不容錯過!Python列表推導式簡明教程

開發 后端
列表解析式(List comprehension)或者稱為列表推導式,是 Python 中非常強大和優雅的方法。它可以基于現有的列表做一些操作,從而快速創建新列表。

列表解析式(List comprehension)或者稱為列表推導式,是 Python 中非常強大和優雅的方法。它可以基于現有的列表做一些操作,從而快速創建新列表。在我們第一次見到列表推導式時,可能會感覺這種方法非常炫酷,因此寫列表推導式是非常爽的一件事。

什么是列表推導式

如果我們有一個列表,并希望抽取列表中的元素,那么最標準的方法是使用 Python 循環,但是我們也可以直接通過列表推導式,它只需一行代碼就能搞定所有操作。當然,抽取列表元素的前提是,我們要理解列表是一種可迭代對象,它允許依次讀取不同的元素。

想象一下,如果動物園中有很多不同的動物,每年每一只動物都需要定期體檢,那么動物園就是列表。我們可以遍歷整個動物園,并依次抽取動物,抽取的動物并不做進一步的處理,直接放到體檢列表中。如下所示為一般 Python 循環的做法: 

  1. # Creating our animal park  
  2. animal_park = [ Rabbit , Rabbit , Rabbit , Rabbit , Cat , Cat , Cat , Cat , Cat , Cat , Cat ,  Turtle , Turtle , Turtle , Turtle , Turtle , Turtle , Turtle ,  Dog , Dog ,  Kangaroo , Kangaroo , Kangaroo , Kangaroo , Kangaroo , Kangaroo ] 
  3. # Creating a new list for our animal doctor with all animals  
  4. animal_doctor = []  
  5. for animal in animal_park:  
  6.    animal_doctor.append(animal) 

上面的代碼很簡單,用一個 for 循環就行,它的語義也很容易理解。如下我們可以使用列表推導式重寫這一個循環: 

  1. animal_doctor = [animal for animal in animal_park] 

通過列表推導式,我們將代碼量由三行降低到一行。如果對比兩者,我們會發現它們其實是一樣的,差不多都是創建、遍歷和接收三部分。

圖1:標準循環與列表推導的對比。

條件語句

這樣看起來列表推導式也沒什么大不了,但別忘了它還能對元素做進一步操作,例如加個條件語句。在標準的列表循環中,我們的條件語句如下所示會加到 for 循環中。 

  1. animal_doctor = []  
  2. for animal in animal_park:  
  3.    if animal !=  Dog  and animal !=  Cat :  
  4.       animal_doctor.append(animal) 

在列表推導式中,我們可以將條件加到里面,用稍微長一點的單行代碼完成整個流程。上面代碼塊可以等價地表達為: 

  1. nimal_doctor = [animal for animal in animal_park if animal !=  Dog  and animal !=  Cat ] 

另外非常重要的一點是,列表推導式的速度非常快。如下兩者都加了條件語句,但是列表推導式要比一般的循環語句快了 51%。

圖2:列表推導與標準循環二者速度的對比。 

最后,如果你使用過列表推導式創建新的列表,那么你最好一直使用它,因為我們沒有原因再使用標準 Python 循環。我們可以發現,只要明晰了基本概念,那么列表推導式還是非常容易使用的。 

 

責任編輯:龐桂玉 來源: 機器學習算法與Python學習
相關推薦

2013-12-03 13:05:30

Lua腳本語言

2016-02-29 15:00:48

RSA/信息安全

2014-06-20 10:51:35

Linux LVM邏輯卷

2011-06-03 08:49:54

Java

2022-06-16 07:32:38

VSCodePython插件

2015-09-17 17:37:57

工具程序開源

2023-06-29 17:53:00

VSCode插件程序

2014-07-10 10:56:21

jQuery

2022-09-22 16:17:12

css編程語言開發

2019-10-29 09:00:00

AIOps人工智能

2014-08-26 10:38:23

AppAndroid Wea應用

2023-10-20 14:08:35

digDNS

2010-05-26 10:42:20

SVN1.5配置

2023-11-02 14:26:30

PyTorch機器學習

2023-11-02 14:30:25

機器學習

2013-08-19 10:45:42

華為HCC大會HCC2013華為

2016-06-21 16:09:14

智能化

2012-12-10 09:24:15

2024-01-31 11:55:16

數據分析數據計算收支
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩免费| 日本精品久久久久久久 | 成人国产精品久久 | 欧美三级电影在线播放 | 国产精品久久久久久模特 | 懂色av一区二区三区在线播放 | 欧美在线一区二区三区 | 午夜精品一区二区三区免费视频 | 成人深夜福利 | 日本三级视频 | 日韩精品一区二区三区高清免费 | 黑人巨大精品欧美一区二区免费 | 精品国产31久久久久久 | 成人av影院 | 一a一片一级一片啪啪 | 精品一区二区久久久久久久网精 | 久久久美女 | 亚洲日本国产 | 男女羞羞在线观看 | 国产美女视频黄 | 色综合99 | 国产欧美精品一区二区色综合朱莉 | 视频一区二区中文字幕日韩 | 久久国产婷婷国产香蕉 | 黄色成人免费在线观看 | 国产精品久久久久久久久久久新郎 | 成人三级在线观看 | 欧美中文字幕在线观看 | 国产视频二区 | 久久久久亚洲国产| 91色视频在线 | 成人一区二区在线 | 欧美亚洲视频在线观看 | 在线观看特色大片免费网站 | 日本特黄特色aaa大片免费 | 羞羞视频一区二区 | 在线国产小视频 | 久久久性色精品国产免费观看 | 国产 亚洲 网红 主播 | 91精品久久久久久久久久入口 | 一本一道久久a久久精品综合 |