Python函数式编程面试题三

177 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第24天,点击查看活动详情

1、一行代码实现1—100之和

print(sum(range(0,101)))

此时运行结果为5050,使用sum()方法和range()方法相结合。注意:range方法是左闭右开的,也就是说包含0,但是不包含101。

2、使用一行代码打印0-100之间的奇数或偶数

偶数
print(list(i for i in range(0, 101) if i % 2 == 0))
奇数
print(list(i for i in range(0, 101) if i % 2 == 1))

此时运行结果为:偶数[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100] 奇数:[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]

3、字典排序使用到的函数具体是哪个?举例说明

dict1 = {"name":"admin","passwd":"123456"}
# sorted()对所有对象排序操作
print(sorted(dict1.items(),key=lambda key: key[1]))
# lambda ()决定按照key还是value进行排序

此时运行结果为[('passwd', '123456'), ('name', 'admin')],将字典dict1按照value值进行排序,lambda()匿名函数中key[0]表示按照key进行排序,key[1]表示按照value进行排序。

4、字符串格式化使用到的关键字是哪个,举例说明

format()方式接受不限个参数,位置可以不按顺序 基本语法是通过{}he :来代替以前的 %

dict1 = {"name":"admin","passwd":"123456"}
print("用户名:{name},密码:{passwd}".format(**dict1))
list1 = ["admin","123456"]
print("用户密码:{0[1]},用户名称:{0[1]}".format(list1))

此时运行结果为“用户名:admin,密码:123456” “用户密码:123456,用户名称:123456” 其中如果是列表{0}是必须要有的。

5、列表中append()与insert()的区别是什么?举例说明

append()想列表末尾追加元素

list1 =[1,2,3,4,5,67,9]
list1.append(1)
print(list1)

此时运行结果为[1, 2, 3, 4, 5, 67, 9, 1],把数字1添加到列表list1的末尾 inser(drss,value)在指定位置插入指定的值

list1 = [1,2,3,4,5,67,9]
list1.insert(1,13)
print(list1)

此时运行结果为[1, 13, 2, 3, 4, 5, 67, 9],把数字13添加到角标为1的位置。