大数跨境
0
0

【推荐】八个Python列表生成式面试题汇总

【推荐】八个Python列表生成式面试题汇总 AI算法之道
2022-05-23
1
导读:​本文重点介绍了八个Python列表生成式的面试题,并给出了相应的代码实现,可以加深大家对列表生成式的理解。






01


引言



之前已经有博客专门介绍了Python中的列表生成式,可能大家还不太擅长。这里推荐八个Python列表生成式的面试题(从简单到困难排序),可以帮助大家提高列表生成式的理解水平。


闲话少说,我们直接开始吧!




02


字符串转整数


【题目描述】

假设我们有以下字符串列表:
lis = ["1", "2", "3", "4", "5"]
我们希望用代码实现列表生成式用以将列表中的每个字符串转化为相应的整数,这里假设每一个列表中的元素均可以转化为整数,即样例的输出如下:
[1, 2, 3, 4, 5]
【参考答案】
lis = ["1", "2", "3", "4", "5"]answer = [int(i) for i in lis]print(answer)




03


大于10的数字


目描述】

假设我们有以下整数列表:
lis = [1,5,13,4,16,7]

我们希望用代码实现列表生成式用以找出上述列表中大于10的数字。即样例的输出如下:

[13, 16]
【参考答案】
lis = [1,5,13,4,16,7]answer = [i for i in lis if i>10]print(answer)




04


大于10且整除3的数字


目描述】

假设我们有以下整数列表:
lis = [1,12,13,14,15,2,3]
我们希望用代码实现列表生成式用以找出上述列表中大于10且可以整除3的数字。即样例的输出如下:
[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)




05


 对列表中的偶数执行加1操作


目描述】

假设我们有以下整数列表:
lis = [1,2,4,5,7]
我们希望用代码实现列表生成式用以对上述列表中的偶数执行加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)





06


包含数字1的数字


目描述】

实现一个列表生成式,用以求出在数字1到100之间所有包含数字1的数字。

即样例的输出如下:

[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)




07


合并两个列表


目描述】

假设我们有两个长度相同的列表,分别为fruitsprices , 两个列表中的元素分别如下:
fruits = ["apple", "orange", "pear"]prices = [4,5,6]

我们希望用代码实现列表生成式用以对上述两个列表进行合并,即列表中的元素为 (fruit, price) 形式。即样例的输出如下:

[("apple",4), ("orange",5), ("pear",6)]

【参考答案】

fruits = ["apple", "orange", "pear"]prices = [4,5,6]answer = [(fruit, price) for fruit, price in zip(fruits, prices)]print(answer)




08


根据value对字典排序


目描述】

假设我们有以下字典,key为水果名称 fruits,value为相应的单价 price ,如下:
d = {"apple":5, "orange":2, "pear":7, "durian":6}

我们需要实现列表生成式用以对上述字典按 price 对相应的元素进行排序。即样例输出如下:

[("orange",2), ("apple",5), ("durian",6), ("pear",7)]

【参考答案】

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)




09


求两个列表的元素组合


目描述】

假设我们有以下两个列表:
fruits = ["apple", "orange", "pear"]recipes = ["pie", "juice"]

我们需要实现列表生成式用以对上述两个列表中的元素求解组合操作。即样例输出如下:

[    ("apple", "pie"), ("apple", "juice"),    ("orange", "pie"), ("orange", "juice"),    ("pear", "pie"), ("pear", "juice")]

【参考答案】

fruits = ["apple", "orange", "pear"]recipes = ["pie", "juice"]answer = [(f,r) for f in fruits for r in recipes]print(answer)





10


总结



本文重点介绍了八个Python列表生成式的面试题,并给出了相应的代码实现,可以加深大家对列表生成式的理解。


您学废了吗?






点击上方小卡片关注我



万水千山总关情,点个在看行不行。

【声明】内容源于网络
0
0
AI算法之道
一个专注于深度学习、计算机视觉和自动驾驶感知算法的公众号,涵盖视觉CV、神经网络、模式识别等方面,包括相应的硬件和软件配置,以及开源项目等。
内容 573
粉丝 0
AI算法之道 一个专注于深度学习、计算机视觉和自动驾驶感知算法的公众号,涵盖视觉CV、神经网络、模式识别等方面,包括相应的硬件和软件配置,以及开源项目等。
总阅读23
粉丝0
内容573