九個(gè)Python列表生成式高頻面試題匯總
1. 引言
之前已經(jīng)有博客專門(mén)介紹了Python中的列表生成式,可能大家還不太擅長(zhǎng)。這里推薦九個(gè)Python列表生成式的面試題(從簡(jiǎn)單到困難排序),可以幫助大家提高列表生成式的理解水平。
閑話少說(shuō),我們直接開(kāi)始吧!
2. 字符串轉(zhuǎn)整數(shù)
假設(shè)我們有以下字符串列表:
lis = ["1", "2", "3", "4", "5"]
我們希望用代碼實(shí)現(xiàn)列表生成式用以將列表中的每個(gè)字符串轉(zhuǎn)化為相應(yīng)的整數(shù),這里假設(shè)每一個(gè)列表中的元素均可以轉(zhuǎn)化為整數(shù),即樣例的輸出如下:
[1, 2, 3, 4, 5]
【參考答案】
lis = ["1", "2", "3", "4", "5"] answer = [int(i) for i in lis] print(answer)
3. 大于10的數(shù)字
假設(shè)我們有以下整數(shù)列表:
lis = [1,5,13,4,16,7]
我們希望用代碼實(shí)現(xiàn)列表生成式用以找出上述列表中大于10的數(shù)字。即樣例的輸出如下:
[13, 16]
【參考答案】
lis = [1,5,13,4,16,7] answer = [i for i in lis if i>10] print(answer)
4. 大于10且整除3的數(shù)字
假設(shè)我們有以下整數(shù)列表:
lis = [1,12,13,14,15,2,3]
我們希望用代碼實(shí)現(xiàn)列表生成式用以找出上述列表中大于10且可以整除3的數(shù)字。即樣例的輸出如下:
[12, 15]
【參考答案】
lis = [1,12,13,14,15,2,3] answer = [i for i in lis if i>10 and i%3==0] print(answer)
5. 對(duì)列表中的偶數(shù)執(zhí)行加1操作
假設(shè)我們有以下整數(shù)列表:
lis = [1,2,4,5,7]
我們希望用代碼實(shí)現(xiàn)列表生成式用以對(duì)上述列表中的偶數(shù)執(zhí)行加1的操作。即樣例的輸出如下:
[1,3,5,5,7]
提示: 可以使用三目運(yùn)算符
【參考答案】
lis = [1,2,4,5,7] answer = [(i+1 if i%2==0 else i) for i in lis] print(answer)
6. 包含數(shù)字1的數(shù)字
實(shí)現(xiàn)一個(gè)列表生成式,用以求出在數(shù)字1到100之間所有包含數(shù)字1的數(shù)字。
即樣例的輸出如下:
[1,10,11,12,13,14,15,16,17,18,19,21,31,41,51,61,71,81,91,100]
【參考答案】
answer = [i for i in range(1,101) if "1" in str(i)] print(answer)
7. 合并兩個(gè)列表
假設(shè)我們有兩個(gè)長(zhǎng)度相同的列表,分別為fruits和prices , 兩個(gè)列表中的元素分別如下:
fruits = ["apple", "orange", "pear"] prices = [4,5,6]
我們希望用代碼實(shí)現(xiàn)列表生成式用以對(duì)上述兩個(gè)列表進(jìn)行合并,即列表中的元素為(fruit, price)形式。即樣例的輸出如下:
[("apple",4), ("orange",5), ("pear",6)]
提示: 推薦使用zip函數(shù)
【參考答案】
fruits = ["apple", "orange", "pear"] prices = [4,5,6] answer = [(fruit, price) for fruit, price in zip(fruits, prices)] print(answer)
8. 根據(jù)value對(duì)字典排序
假設(shè)我們有以下字典,key為水果名稱fruits,value為相應(yīng)的單價(jià)price,如下:
d = {"apple":5, "orange":2, "pear":7, "durian":6}
我們需要實(shí)現(xiàn)列表生成式用以對(duì)上述字典按price對(duì)相應(yīng)的元素進(jìn)行排序。即樣例輸出如下:
[("orange",2), ("apple",5), ("durian",6), ("pear",7)]
提示: 推薦使用 sorted函數(shù)
【參考答案】
d = {"apple":5, "orange":2, "pear":7, "durian":6} answer = sorted([(f,p) for f,p in d.items()], key=lambda x:x[-1]) print(answer)
9. 求兩個(gè)列表的元素組合
假設(shè)我們有以下兩個(gè)列表:
fruits = ["apple", "orange", "pear"] recipes = ["pie", "juice"]
我們需要實(shí)現(xiàn)列表生成式用以對(duì)上述兩個(gè)列表中的元素求解組合操作。即樣例輸出如下:
[
("apple", "pie"), ("apple", "juice"),
("orange", "pie"), ("orange", "juice"),
("pear", "pie"), ("pear", "juice")
]
提示: 使用兩層嵌套循環(huán)
【參考答案】
fruits = ["apple", "orange", "pear"] recipes = ["pie", "juice"] answer = [(f,r) for f in fruits for r in recipes] print(answer)
10. 列表中兩個(gè)元素的唯一組合,其和為3的倍數(shù)
假設(shè)我們有以下整數(shù)列表:
lis = [1,6,2,4,7]
我們希望用列表生成式來(lái)實(shí)現(xiàn)在此列表中查找任意兩個(gè)元素的唯一組合,其總和為3的倍數(shù)。即上述樣例預(yù)期輸出為:
[(1,2), (2,4), (2,7)]
【參考答案】
lis = [1,6,2,4,7] answer = [(i,j) for i in lis for j in lis if i<j and (i+j)%3==0] print(answer)
11. 總結(jié)
本文重點(diǎn)介紹了九個(gè)Python列表生成式的面試題,并給出了相應(yīng)的代碼實(shí)現(xiàn),可以加深大家對(duì)列表生成式的理解。
到此這篇關(guān)于九個(gè)Python列表生成式高頻面試題匯總的文章就介紹到這了,更多相關(guān)Python列表生成式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python獲取一組數(shù)據(jù)里最大值max函數(shù)用法實(shí)例
這篇文章主要介紹了python獲取一組數(shù)據(jù)里最大值max函數(shù)用法,實(shí)例分析了max函數(shù)的使用技巧,需要的朋友可以參考下2015-05-05Deepsort + Yolo 實(shí)現(xiàn)行人檢測(cè)和軌跡追蹤的方法
這篇文章主要介紹了Deepsort + Yolo 實(shí)現(xiàn)行人檢測(cè)和軌跡追蹤,本項(xiàng)目通過(guò)采用深度學(xué)習(xí)方法實(shí)現(xiàn)YOLO算法行人檢測(cè)和deepsort算法對(duì)人員定位的和軌跡跟蹤,需要的朋友可以參考下2021-09-09Python使用低通濾波器模糊圖像功能實(shí)現(xiàn)
這篇文章主要介紹了Python使用低通濾波器模糊圖像,我們介紹了多種不同類型的濾波器核與卷積操作,使用 scipy.ndimage 模塊中的濾波器模糊圖像,利用 scipy.fftpack 模塊的 fft2() 函數(shù)實(shí)現(xiàn)高斯模糊,介紹了scipy.signal模塊的彩色圖像頻域卷積,需要的朋友可以參考下2023-03-03詳解如何在pyqt中通過(guò)OpenCV實(shí)現(xiàn)對(duì)窗口的透視變換
這篇文章主要介紹了如何在pyqt中通過(guò)OpenCV實(shí)現(xiàn)對(duì)窗口的透視變換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python數(shù)據(jù)分析之?Pandas?Dataframe條件篩選遍歷詳情
這篇文章主要介紹了Python數(shù)據(jù)分析之?Pandas?Dataframe條件篩選遍歷詳情,查詢Pandas?Dataframe數(shù)據(jù)時(shí),經(jīng)常會(huì)篩選出符合條件的數(shù)據(jù),關(guān)于其使用方式,需要的小伙伴可以參考一下下面文章內(nèi)容2022-05-05詳解OpenCV中簡(jiǎn)單的鼠標(biāo)事件處理
談及鼠標(biāo)事件,就是在觸發(fā)鼠標(biāo)按鈕后程序所做出相應(yīng)的反應(yīng),但是不影響程序的整個(gè)線程。本文將主要介紹OpenCV中的簡(jiǎn)單鼠標(biāo)事件處理,感興趣的可以學(xué)習(xí)一下2022-01-01