面试题

Posted on 2018-12-25 14:08  爱你的毕加索  阅读(164)  评论(0编辑  收藏  举报

day01

1.请写出一段Python代码实现删除一个list里面的重复元素

# 第一种方法
l = [1,2,2,6,6,8,9,1]
print(set(l))
# 第二种方法
l2 = []
l3 = [l2.append(i) for i in l if i not in l2]
print(l2)

2.用lambda函数实现两个数相乘

f = lambda x, y : x * y
print(f(10, 14))


f = lambda x, y=2 : x ** y
print(f(5, 5))

g = map(lambda x : x**3, (1,2,3,4))
print(type(g))
l = [i for i in g]
print(l)

11.写一个函数, 输入一个字符串, 返回倒序排列的结果

输入: string_reverse(‘abcdef') , 返回: ‘fedcba',写出你能想到的多种方法

def string_reverse(str):
    return str[::-1]
print(string_reverse('abcdef'))

# 第二种
def string_reserve(str):
    new_str = list(str)
    new_str.reverse()
    return ''.join(new_str)
print(string_reserve('abcdef'))
# 第三种
def string_reverse(str):
    new_str = []
    for i in range(1,len(str)+1):
        new_str.append(str[-i])
    return ''.join(new_str)
print(string_reverse('abcdef'))
# 第四种(递归)
def string_reverse(str):
    if len(str) <=1:
        return str
    else:
        return string_reverse(str[1:])+str[0]
print(string_reverse('abcdef'))

 

4.*arg和**kwarg作用

*args代表位置参数,它会接收任意多个参数并把这些参数作为元祖传递给函数。

**kwargs代表的关键字参数,返回的是字典,位置参数一定要放在关键字前面


5.简述with方法打开处理文件帮我我们做了什么?

with方法帮我们实现了finally中f.close