九個Python列表生成式高頻面試題匯總
1. 引言
之前已經(jīng)有博客專門介紹了Python中的列表生成式,可能大家還不太擅長。這里推薦九個Python列表生成式的面試題(從簡單到困難排序),可以幫助大家提高列表生成式的理解水平。
閑話少說,我們直接開始吧!
2. 字符串轉(zhuǎn)整數(shù)
假設我們有以下字符串列表:
lis = ["1", "2", "3", "4", "5"]
我們希望用代碼實現(xiàn)列表生成式用以將列表中的每個字符串轉(zhuǎn)化為相應的整數(shù),這里假設每一個列表中的元素均可以轉(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ù)列表:
lis = [1,5,13,4,16,7]
我們希望用代碼實現(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ù)列表:
lis = [1,12,13,14,15,2,3]
我們希望用代碼實現(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. 對列表中的偶數(shù)執(zhí)行加1操作
假設我們有以下整數(shù)列表:
lis = [1,2,4,5,7]
我們希望用代碼實現(xiàn)列表生成式用以對上述列表中的偶數(shù)執(zhí)行加1的操作。即樣例的輸出如下:
[1,3,5,5,7]
提示: 可以使用三目運算符
【參考答案】
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ù)字
實現(xiàn)一個列表生成式,用以求出在數(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. 合并兩個列表
假設我們有兩個長度相同的列表,分別為fruits和prices , 兩個列表中的元素分別如下:
fruits = ["apple", "orange", "pear"] prices = [4,5,6]
我們希望用代碼實現(xià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對字典排序
假設我們有以下字典,key為水果名稱fruits,value為相應的單價price,如下:
d = {"apple":5, "orange":2, "pear":7, "durian":6}
我們需要實現(xiàn)列表生成式用以對上述字典按price對相應的元素進行排序。即樣例輸出如下:
[("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. 求兩個列表的元素組合
假設我們有以下兩個列表:
fruits = ["apple", "orange", "pear"] recipes = ["pie", "juice"]
我們需要實現(xiàn)列表生成式用以對上述兩個列表中的元素求解組合操作。即樣例輸出如下:
[
("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. 列表中兩個元素的唯一組合,其和為3的倍數(shù)
假設我們有以下整數(shù)列表:
lis = [1,6,2,4,7]
我們希望用列表生成式來實現(xiàn)在此列表中查找任意兩個元素的唯一組合,其總和為3的倍數(shù)。即上述樣例預期輸出為:
[(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é)
本文重點介紹了九個Python列表生成式的面試題,并給出了相應的代碼實現(xiàn),可以加深大家對列表生成式的理解。
到此這篇關(guān)于九個Python列表生成式高頻面試題匯總的文章就介紹到這了,更多相關(guān)Python列表生成式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Python函數(shù)可變參數(shù)定義及其參數(shù)傳遞方式
這篇文章主要介紹了詳解Python函數(shù)可變參數(shù)定義及其參數(shù)傳遞方式的相關(guān)資料,這里提供實例代碼幫助大家學習理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08
python使用redis模塊來跟redis實現(xiàn)交互
這篇文章主要介紹了python使用redis模塊來跟redis實現(xiàn)交互,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06
tensorflow實現(xiàn)從.ckpt文件中讀取任意變量
這篇文章主要介紹了tensorflow實現(xiàn)從.ckpt文件中讀取任意變量,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
使用Python的Tornado框架實現(xiàn)一個一對一聊天的程序
這篇文章主要介紹了使用Python的Tornado框架實現(xiàn)一個一對一聊天的程序,程序基于WebSocket,需要的朋友可以參考下2015-04-04

