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

四個Python推導式相關的開發技巧

開發 前端
對于數據科學,Python通常被廣泛地用于進行數據的處理和轉換,它提供了強大的數據結構處理的函數,使數據處理更加靈活,這里說的“靈活性”是什么意思?

對于數據科學,Python通常被廣泛地用于進行數據的處理和轉換,它提供了強大的數據結構處理的函數,使數據處理更加靈活,這里說的“靈活性”是什么意思?

這意味著在Python中總是有多種方法來實現相同的結果,我們總是有不同的方法并且需要從中選擇易于使用、省時并能更好控制的方法。

要掌握所有的這些方法是不可能的。所以這里列出了在處理任何類型的數據時應該知道的4個Python技巧。

圖片

列表推導式List Comprehension是創建列表的一種優雅且最符合python語言的方法。與for循環和if語句相比,列表推導式在基于現有列表的值創建新列表時語法要短得多。因此,讓我們看看該特性如何獲得列表的副本。

使用列表推導式復制一個列表

有時需要創建現有列表的副本。最簡單的答案是.copy(),它允許您將一個列表的內容復制到另一個(新)列表。

例如,一個由整數組成的列表original_list。

original_list = [10,11,20,22,30,34]

可以簡單地使用.copy()方法復制此列表。

duplicated_list = original_list.copy()

列表推導式可以得到完全相同的輸出。復制列表是理解列表推導式的最佳案例。

看看下面這段代碼。

duplicated_list = [item for item in original_list]

這里并不是說復制列表使用列表推導式更好,而是說對于介紹列表推導式的工作方式,這個案例是最好的。

接下來,讓我們看看對列表的每個元素執行數學運算時,列表推導式如何使工作變得簡單。

列表中的元素相乘

最簡單或直接的乘法方法是使用乘法運算符,即*

例如,想用一個標量(即數字5)乘以列表中的每一項。這里肯定不能使用original_list*5,因為它將創建列表的5個副本。

在這個場景中,最好的答案是列表推導式,如下所示。

original_list = [10,11,20,22,30,34]
multiplied_list = [item*5 for item in original_list]

# Output
[50, 55, 100, 110, 150, 170]

這里的操作并不局限乘以一個數字。可以對原始列表的每個元素執行復雜的操作。

例如,假設想計算每一項的平方根的立方,可以在一行中解決它。

multiplied_list = [math.sqrt(item)**3 for item in original_list]

# Output
[31.6227766016838,
36.4828726939094,
89.4427190999916,
103.18914671611546,
164.31676725154983,
198.25236442474025]

用于計算數字平方根的函數sqrt屬于庫math,因此在本例中需要在使用它之前導入它。

與上面所示的內置函數類似,還可以在列表的每個元素上使用用戶定義的函數。

例如如下所示的簡單函數。

def simple_function(item):
item1 = item*10
item2 = item*11
return math.sqrt(item1**2 + item2**2)

可以對列表的每一項應用這個用戶定義的函數。

multiplied_list = [simple_function(item) for item in original_list]

# Output
[148.66068747318505,
163.52675622050356,
297.3213749463701,
327.0535124410071,
445.9820624195552,
505.4463374088292]

列表推導式在實際場景中甚至更有用。通常在分析任務中需要從列表中刪除某種類型的元素,例如消0護著nan元素。列表推導式是完成這些任務的完美工具。

刪除列表中的元素

根據特定條件篩選數據是選擇所需數據集的常見任務之一,同樣的邏輯也用于列表推導式中。

假設你有下面提到的數字列表。

original_list = [10, 22, -43, 0, 34, -11, -12, -0.1, 1]

你想要從這個列表中只保留正值。因此,從邏輯上講,您希望只保留那些對條件項> 0求值為TRUE的項。

new_list = [item for item in original_list if item > 0]

# Output
[10, 22, 34, 1]

if子句用來刪除負值。可以使用if子句應用任何條件來從列表中刪除任何項。

例如,當想刪除所有平方小于200的項時需要做的就是在列表綜合中提到條件項**2 > 200,如下所示。

new_list = [item for item in original_list if item**2 > 200]

# Output
[22, -43, 34]

在處理真實的數據集時,過濾列表項的條件可能要復雜得多,這種方法既快又易于理解。

使用dict()將兩個列表轉換為字典鍵值對

有時需要從兩個列表中的值創建字典。你可以使用字典推導式(dictionary comprehension) ,而不是一個一個地輸入,這是創建字典的一種優雅而簡潔的方法!

它的工作原理與列表推導式完全相似,唯一的區別是——創建一個列表推導式時,你將所有內容都包含在方括號中,例如[],而在字典推導式中,你將所有內容都包含在花括號中,例如{}。

假設有兩個列表—字段和詳細信息—如下所示。

fields = [‘name’, ‘country’, ‘age’, ‘gender’]
details = [‘pablo’, ‘Mexico’, 30, ‘Male’]

一個簡單的方法是使用像這樣的字典推導式-

new_dict = {key: value for key, value in zip(fields, details)}

# Output
{'name': 'pablo', 'country': 'Mexico', 'age': 30, 'gender': 'Male'}

這里需要理解的重要是函數zip是如何工作的。

在Python中,zip函數接受可迭代對象,如字符串、列表或字典作為輸入,返回它們聚合為元組。

因此,在本例中zip已經從列表fields和details中形成了每個項的對。當字典推導式中使用key: value時,只需將此元組解包為單獨的鍵-值對。

當使用Python中內置的dict()構造函數(用于創建字典)時,這個過程甚至會變得更快,因為dict()比字典推導式至少快1.3倍!

所以我們需要將此構造函數與zip()函數一起使用,它的語法要簡單得多——dict(zip(fields,details))

總結

正如我一開始提到的,Python非常靈活,因為有多種方法可以實現相同的結果。根據任務的復雜程度需要選擇最好的方法來實現它。

我希望這篇文章能對你有用。如果有任何其他方法可以做到我在本文中提到的同樣的事情,請告訴我。

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2022-05-04 12:44:57

Python編程語言

2024-11-14 09:00:00

Python編程元編程

2023-02-19 15:22:22

React技巧

2020-08-25 08:47:15

開源軟件技巧

2023-11-13 10:00:09

數據中心服務器

2011-07-25 14:39:06

組策略

2023-10-26 07:47:35

JavaScript代碼變量

2021-10-19 09:53:38

智能建筑數據中心邊緣計算

2014-10-16 09:50:41

2022-07-15 14:54:00

DockerLinux技巧

2024-06-14 08:11:33

Spring技巧開發

2019-11-04 06:08:48

云計算成本云計算遷移

2020-05-20 15:27:44

智慧城市數據技術

2024-06-26 11:08:46

2022-10-21 10:22:30

網絡網絡容量網絡資源 Tech

2022-04-07 09:34:39

技巧云服務費用

2009-03-03 11:41:14

數據庫表表分區

2011-08-29 18:37:47

Ubuntu11.04

2023-09-06 16:55:33

JavaScript閉包

2024-03-27 14:16:48

Docker鏡像RUN
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区精品视频 | 9久久精品 | 国产婷婷精品 | 羞羞网站在线免费观看 | www日本高清视频 | 国产精品99久久久久久动医院 | 色婷婷在线视频 | 伊人久麻豆社区 | 欧美精品video | 成人在线小视频 | 亚洲精品aⅴ| 成人三级视频 | 日韩在线播放视频 | 中国一级特黄真人毛片免费观看 | 国产一区二区视频在线观看 | 日韩电影一区二区三区 | 久久久久亚洲精品中文字幕 | 一级毛片视频 | 国产精品视频免费观看 | 成人性视频免费网站 | 国产精品一二三区在线观看 | 91亚洲国产成人久久精品网站 | 伊大人久久 | 天天色图 | 美女日批免费视频 | 亚洲午夜视频在线观看 | 久久中文网 | 国产精品v| 成人福利在线 | 久久久久久久久久久成人 | 岛国毛片在线观看 | 国产91在线播放 | 亚洲欧美日韩中文在线 | 天天色影视综合 | 黄色片大全在线观看 | 欧美另类视频在线 | 国产精品日韩欧美一区二区三区 | 国产视频二区 | 国产9999精品 | 国产在线精品一区二区 | av在线播放网 |