自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

8種高級(jí)的Python列表使用技巧,都給你整理好啦(附實(shí)操代碼)

開發(fā) 后端
Python中的列表是我們很常見的數(shù)據(jù)結(jié)構(gòu)之一,也是很強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)之一!Python列表功能非常豐富,并且具有很多隱藏的技巧沒(méi)有被發(fā)現(xiàn)。

 Python中的列表是我們很常見的數(shù)據(jù)結(jié)構(gòu)之一,也是很強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)之一!Python列表功能非常豐富,并且具有很多隱藏的技巧沒(méi)有被發(fā)現(xiàn)。

 

[[330684]]

 

一、使用Python過(guò)濾列表

1.使用Filter()函數(shù)

filter()函數(shù)采用兩個(gè)參數(shù):函數(shù)和可迭代項(xiàng)。 在這種情況下,我們將定義一個(gè)函數(shù)并過(guò)濾一個(gè)列表。

讓我們用一個(gè)例子來(lái)嘗試一下!我們將從列表開始,并過(guò)濾出所有小于3的項(xiàng):

 

  1. original_list = [1,2,3,4,5] 
  2.  
  3. def filter_three(number): 
  4.   return number > 3 
  5.  
  6. filtered = filter(filter_three, original_list) 
  7.  
  8. filtered_list = list(filtered) 
  9.  
  10. print(filtered_list) 
  11. Returns [4,5] 

讓我們看看這里發(fā)生了什么:

  1. 我們定義了原始列表
  2. 然后定義一個(gè)接受參數(shù)(“ number”)的函數(shù)。如果數(shù)字大于3,函數(shù)將返回True。
  3. 我們定義了一個(gè)應(yīng)用filter函數(shù)的項(xiàng)(“ filtered”)。我們的項(xiàng)已篩選,是篩選對(duì)象。
  4. 最后,我們創(chuàng)建“ filtered_list”,將列表函數(shù)替換為filtered對(duì)象。

2.具有列表理解

類似地,我們可以用列表理解過(guò)濾列表。記住,列表理解是定義和修改列表非常簡(jiǎn)單快捷的方式。

讓我們看看如何通過(guò)列表理解來(lái)完成前面的任務(wù):

original_list = [1,2,3,4,5]filtered_list = [number for number in original_list if number > 3]print(filtered_list)# Return [4,5]

從這兩個(gè)示例中我們可以看出,列表理解是一種更簡(jiǎn)單,更快捷的過(guò)濾列表方法。

二、修改列表

1.使用Map()函數(shù)

Python Map函數(shù)允許我們將函數(shù)應(yīng)用于可迭代對(duì)象中的每個(gè)項(xiàng)。

假如我們有一個(gè)列表,想返回每個(gè)數(shù)字的平方。我們可以使用map()函數(shù)來(lái)實(shí)現(xiàn)這一點(diǎn)。讓我們看一下具體操作:

 

  1. original_list = [1,2,3,4,5] 
  2.  
  3. def square(number): 
  4.   return number ** 2 
  5.  
  6. squares = map(square, original_list) 
  7.  
  8. squares_list = list(squares) 
  9.  
  10. print(squares) 
  11.  
  12. Returns [1, 4, 9, 16, 25] 

讓我們探討一下這里發(fā)生了什么:

首先,我們定義了原始列表和一個(gè)返回其參數(shù)平方(“number”)的函數(shù)。

然后,我們創(chuàng)建一個(gè)名為“squares”的新變量,它是map函數(shù)的結(jié)果,函數(shù)和原始列表作為其參數(shù)。

最后,我們創(chuàng)建另一個(gè)新變量,將list函數(shù)應(yīng)用于squares變量。

這個(gè)方法有點(diǎn)復(fù)雜!接下來(lái)讓我們看看清單理解!

 

2.具有列表理解

我們可以使用列表理解來(lái)修改列表項(xiàng)。這甚至是一個(gè)更容易和更優(yōu)雅的方式來(lái)編寫我們的代碼。

讓我們嘗試一下!

 

  1. original_list = [1,2,3,4,5] 
  2.  
  3. squares_list = [number ** 2 for number in original_list] 
  4.  
  5. print(squares_list) 
  6.  
  7. Returns [1,4,9,16,25] 

三、將列表與Zip()函數(shù)合并

在某些情況下,可能需要合并兩個(gè)或多個(gè)列表。這就是zip()函數(shù)的作用:在每個(gè)索引處創(chuàng)建一個(gè)包含列表對(duì)應(yīng)元素的對(duì)象。

讓我們用一個(gè)例子來(lái)嘗試一下:

 

  1. original_list = [1,2,3,4,5] 
  2.  
  3. reversed_list = original_list[::-1] 
  4.  
  5. print(reversed_list) 
  6.  
  7. Returns: [5,4,3,2,1] 

四、顛倒列表

Python列表是有序的數(shù)據(jù)結(jié)構(gòu)。因此,項(xiàng)目的順序很重要。有時(shí)我們可能需要顛倒列表中的項(xiàng),這可以使用Python切片操作輕松完成。

讓我們用一個(gè)例子來(lái)嘗試一下:

original_list = [1,2,3,4,5]reversed_list = original_list[::-1]print(reversed_list)# Returns: [5,4,3,2,1]

五、檢查列表中的成員身份

有時(shí)我們想查看列表中是否存在某個(gè)項(xiàng)。

我們只需使用in運(yùn)算符即可完成此操作。

 

  1. games = ['Yankees''Yankees''Cubs''Blue Jays''Giants'
  2.  
  3. def isin(item, list_name): 
  4.   if item in list_name: print(f"{item} is in the list!"
  5.   else: print(f"{item} is not in the list!"
  6.  
  7. isin('Blue Jays', games) 
  8. isin('Angels', games)  
  9.  
  10. Returns 
  11. #Blue Jays在名單上! 
  12. #Angels不在名單上! 

六、查找列表中最常見的項(xiàng)

如果你想在列表中找到最常見的項(xiàng)。例如,你可能在列表中記錄了正反面游戲的獲勝者,并且想知道哪個(gè)贏得最多。

 

  1. games = ['heads''heads''tails''heads''tails'
  2. items = set(games) 
  3. print(max(items, key = games.count)) 

讓我們看看這段代碼做什么:

  1. 我們用五個(gè)正面或反面游戲的結(jié)果來(lái)定義一個(gè)列表;
  2. 我們定義了列表中所有項(xiàng)的集合。set()函數(shù)過(guò)濾掉了列表中的重復(fù)項(xiàng);
  3. 最后,我們將max()應(yīng)用于項(xiàng)目集,并使用key參數(shù)作為集合中元素的最高計(jì)數(shù)。

七、展開列表

有時(shí)我們會(huì)得到一個(gè)列表,其中包含其他列表,也就是表中有表。你可以使用列表理解輕松做到這一點(diǎn)!

讓我們嘗試一下:

 

  1. nested_list = [[1,2,3],[4,5,6],[7,8,9]] 
  2.  
  3. flat_list = [i for j in nested_list for i in j] 
  4.  
  5. print(flat_list) 
  6.  
  7. Returns [1, 2, 3, 4, 5, 6, 7, 8, 9] 

八、檢查唯一性

如果需要檢查列表中的所有項(xiàng)是否唯一,則可以使用集合的功能來(lái)完成此操作!

Python中的集合類似于列表(因?yàn)樗强勺兦覠o(wú)序的),但是它只能包含唯一的項(xiàng)。

為此,我們需要使用一個(gè)函數(shù)將列表轉(zhuǎn)換為一個(gè)集合,并比較兩個(gè)項(xiàng)的長(zhǎng)度::

 

  1. list1 = [1,2,3,4,5] 
  2. list2 = [1,1,2,3,4] 
  3.  
  4. def isunique(list): 
  5.   if len(list) == len(set(list)): 
  6.     print('Unique!'
  7.   else: print('Not Unique!'
  8.  
  9. isunique(list1) 
  10. isunique(list2) 
  11.  
  12. Returns  
  13. # 唯一性 
  14. # 不唯一 

 

--END--

希望你學(xué)到了以上關(guān)于列表的新知識(shí),以及如何以不同的方式運(yùn)用起來(lái)!

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2019-01-16 10:55:08

Python 開發(fā)編程語(yǔ)言

2023-01-05 17:55:39

分布式架構(gòu)

2020-10-23 09:50:20

鏈表Java代碼

2022-01-11 07:59:15

K8S KubernetesAirflow

2020-08-04 07:47:59

代碼模板模式

2020-11-24 11:30:51

SpringJava代碼

2010-04-14 10:48:49

Oracle使用

2019-04-02 14:04:34

虛擬現(xiàn)實(shí)VR設(shè)計(jì)

2020-07-26 18:34:46

Python開發(fā)工具

2020-08-23 18:18:27

Python列表數(shù)據(jù)結(jié)構(gòu)

2010-04-12 09:36:29

Oacle merge

2021-07-09 07:21:40

SpringBootRedisLUA

2024-12-06 07:00:00

Python列表索引

2009-12-23 17:22:18

Linux系統(tǒng)rsyn

2010-04-09 09:07:43

Oracle游標(biāo)觸發(fā)器

2010-04-09 10:13:13

Oracle數(shù)據(jù)字典

2010-04-15 14:18:30

Oracle創(chuàng)建

2010-05-10 17:00:53

Oracle死鎖進(jìn)程

2010-05-18 12:24:16

MySQL binlo

2023-08-26 07:09:36

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)