本篇內(nèi)容介紹了“有哪些高級(jí)的Python列表使用技巧”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)公司是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開發(fā),軟件開發(fā),成都小程序開發(fā),十余年建站對(duì)除甲醛等多個(gè)方面,擁有豐富建站經(jīng)驗(yàn)。
1.使用Filter()函數(shù)
filter()函數(shù)采用兩個(gè)參數(shù):函數(shù)和可迭代項(xiàng)。 在這種情況下,我們將定義一個(gè)函數(shù)并過濾一個(gè)列表。
讓我們用一個(gè)例子來嘗試一下!我們將從列表開始,并過濾出所有小于3的項(xiàng):
original_list = [1,2,3,4,5] def filter_three(number): return number > 3 filtered = filter(filter_three, original_list) filtered_list = list(filtered) print(filtered_list) # Returns [4,5]
讓我們看看這里發(fā)生了什么:
鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)
我們定義了原始列表
然后定義一個(gè)接受參數(shù)(“ number”)的函數(shù)。如果數(shù)字大于3,函數(shù)將返回True。
我們定義了一個(gè)應(yīng)用filter函數(shù)的項(xiàng)(“ filtered”)。我們的項(xiàng)已篩選,是篩選對(duì)象。
最后,我們創(chuàng)建“ filtered_list”,將列表函數(shù)替換為filtered對(duì)象。
2.具有列表理解
類似地,我們可以用列表理解過濾列表。記住,列表理解是定義和修改列表非常簡單快捷的方式。
讓我們看看如何通過列表理解來完成前面的任務(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è)示例中我們可以看出,列表理解是一種更簡單,更快捷的過濾列表方法。
1.使用Map()函數(shù)
Python Map函數(shù)允許我們將函數(shù)應(yīng)用于可迭代對(duì)象中的每個(gè)項(xiàng)。
假如我們有一個(gè)列表,想返回每個(gè)數(shù)字的平方。我們可以使用map()函數(shù)來實(shí)現(xiàn)這一點(diǎn)。讓我們看一下具體操作:
original_list = [1,2,3,4,5] def square(number): return number ** 2 squares = map(square, original_list) squares_list = list(squares) print(squares) # 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ù)雜!接下來讓我們看看清單理解!
2.具有列表理解
我們可以使用列表理解來修改列表項(xiàng)。這甚至是一個(gè)更容易和更優(yōu)雅的方式來編寫我們的代碼。
讓我們嘗試一下!
original_list = [1,2,3,4,5] squares_list = [number ** 2 for number in original_list] print(squares_list) # Returns [1,4,9,16,25]
在某些情況下,可能需要合并兩個(gè)或多個(gè)列表。這就是zip()函數(shù)的作用:在每個(gè)索引處創(chuàng)建一個(gè)包含列表對(duì)應(yīng)元素的對(duì)象。
讓我們用一個(gè)例子來嘗試一下:
original_list = [1,2,3,4,5] reversed_list = original_list[::-1] print(reversed_list) # Returns: [5,4,3,2,1]
Python列表是有序的數(shù)據(jù)結(jié)構(gòu)。因此,項(xiàng)目的順序很重要。有時(shí)我們可能需要顛倒列表中的項(xiàng),這可以使用Python切片操作輕松完成。
讓我們用一個(gè)例子來嘗試一下:
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)算符即可完成此操作。
games = ['Yankees', 'Yankees', 'Cubs', 'Blue Jays', 'Giants'] def isin(item, list_name): if item in list_name: print(f"{item} is in the list!") else: print(f"{item} is not in the list!") isin('Blue Jays', games) isin('Angels', games) # Returns #Blue Jays在名單上! #Angels不在名單上!
如果你想在列表中找到最常見的項(xiàng)。例如,你可能在列表中記錄了正反面游戲的獲勝者,并且想知道哪個(gè)贏得最多。
games = ['heads', 'heads', 'tails', 'heads', 'tails'] items = set(games) print(max(items, key = games.count))
讓我們看看這段代碼做什么:
鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)
我們用五個(gè)正面或反面游戲的結(jié)果來定義一個(gè)列表;
我們定義了列表中所有項(xiàng)的集合。set()函數(shù)過濾掉了列表中的重復(fù)項(xiàng);
最后,我們將max()應(yīng)用于項(xiàng)目集,并使用key參數(shù)作為集合中元素的最高計(jì)數(shù)。
有時(shí)我們會(huì)得到一個(gè)列表,其中包含其他列表,也就是表中有表。你可以使用列表理解輕松做到這一點(diǎn)!
讓我們嘗試一下:
nested_list = [[1,2,3],[4,5,6],[7,8,9]] flat_list = [i for j in nested_list for i in j] print(flat_list) # Returns [1, 2, 3, 4, 5, 6, 7, 8, 9]
如果需要檢查列表中的所有項(xiàng)是否唯一,則可以使用集合的功能來完成此操作!
Python中的集合類似于列表(因?yàn)樗强勺兦覠o序的),但是它只能包含唯一的項(xiàng)。
為此,我們需要使用一個(gè)函數(shù)將列表轉(zhuǎn)換為一個(gè)集合,并比較兩個(gè)項(xiàng)的長度::
list1 = [1,2,3,4,5] list2 = [1,1,2,3,4] def isunique(list): if len(list) == len(set(list)): print('Unique!') else: print('Not Unique!') isunique(list1) isunique(list2) # Returns # 唯一性 # 不唯一
“有哪些高級(jí)的Python列表使用技巧”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!