Python函数式编程面试题一

153 阅读2分钟

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

1、用户函数实现过滤掉集合list1=[' ', 'hello',None,'python',’‘]中的空格和空值

使用filter 过滤,只能过滤空字符和None

list1 = [' ', 'hello',None,'python',’‘]
a = list(filter(None,list1))
print(a)

此时打印结果为为[' ', 'hello', 'python'],只能过滤空字符和None,有空格的字符没有过滤

Python 内建filter()函数,过滤list,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素 不仅可以过滤空字符和None,而且可以过滤含有空格的字符

list1 = [' ', 'hello',None,'python']
def not_empty(s):
    return s and s.strip()
print(list(filter(not_empty,list1)))

此时打印结果为['hello', 'python'],不仅可以过滤空字符和None,而且可以吧空格的字符也过滤。

2、用函数方法实现计算集合list1=[1,2,3,4,5]中,所有元素的和

def sum(l):
    s = 0
    for i  in l:
        s = s+i
    return s
list1=[1,2,3,4,5]
print(sum(list1))

此时打印结果是15,表示list1中所有的元素和为15.

3、两个列表相加

可使用extend(),此时更新的是其中的一个列表

list1=[1,2,3,4,5,6,4]
list2=['1','a','b','3','c']
list1.extend(list2)
print(list1)

此时打印结果为[1, 2, 3, 4, 5, 6, 4, '1', 'a', 'b', '3', 'c'],就是把列表list2添加到list1中,更新列表list1的值。

4、删除字典中的键

4.1可使用del 进行删除字典中的键对值,没有返回值 dict1 = {'a':1,'b':2,"c":3,"d":4} del dict1['b'] print(dict1) 此时打印结果为{'a': 1, 'c': 3, 'd': 4},已经把字典dict1中的键为“b“的键对值删除;了

4.2 使用popitem()默认删除字典最后一个key和value

 dict1 = {'a':1,'b':2,"c":3,"d":4}
 dict1.popitem()
 print(dict1)

此时打印结果为{'a': 1, 'b': 2, 'c': 3},已经默认删除了字典dict1的最后一个键对值。

4.3 使用pop(key)删除指定的键对值 pop()这个函数会有一个返回值(value)。

dict1 = {'a':1,'b':2,"c":3,"d":4}
print(dict1.pop('c'))
print(dict1)

此时运行结果为3 {'a': 1, 'b': 2, 'd': 4} ,字典删除键为”c“的值,并返回键对应的值3

5、列表中去除重复的数字

可以直接使用set然后再转化成list

list1 = [1,3,5,2,35,2,4,5,3,4]
list2 = list(set(list1))
print(list2)

此时运行结果为[1, 2, 3, 35, 5, 4],将列表list1中的重复的数字删除了,只留下一个。