python基础面试题

python基础面试题,第1张

概述文章目录前言字典字典相加合并dict()合并字典列表列表合并相加extend()方法合并列表字典转换列表转字典字典转列表切片使用题目解答一解答二装饰器装饰器概念及用途写一个装饰器(题目)生成器与迭代器生成器迭代器生成器与迭代器的区别实例、静态、类方法实例方法静态

文章目录前言字典字典相加合并dict()合并字典列表列表合并相加extend()方法合并列表字典转换列表转字典字典转列表切片使用题目解答一解答二装饰器装饰器概念及用途写一个装饰器(题目)生成器与迭代器生成器迭代器生成器与迭代器的区别实例、静态、类方法实例方法静态方法类方法单例模式题目基于__new__(推荐)基于类方法工厂模式小结

前言

写博客的第二篇:
为什么要写这篇文章?因为这是作者所经历过的面试,一鼻子的灰,作者一直想找数据分析的工作,可只会简单的爬取,知道爬虫思路,当被问到基础的东西时,就突然一脸懵逼,咦?这个我好想用过啊!是怎么来着?也过于紧张,在面试的时候双脚抖得疼痛。以python的对象来说,大脑是对象,还是空白的那种。面试某公司,面试官让我买本书看看!深受打击,在面试的前一晚,作者复习爬虫到3点,之后就被基础的知识问傻了,人也傻了。写这篇文章,也在于激励自己,绝不放弃,也希望能给各位一些小经验,基础!基础!基础!

字典字典相加合并
dict_a = {'a':'这是字典a','b':'这是字典b'}dict_b = {'c':'这是字典c','d':'这是字典d'}merge_dict = dict(List(dict_a.items())+List(dict_b.items()))print(merge_dict)#输出{'a':'这是字典a','b':'这是字典b','c':'这是字典c','d':'这是字典d'}

这里使用了items方法,何为items方法呢?Python 字典items() 函数以列表返回可遍历的(键, 值) 元组数组。这是网上解释,作者分解一下,请看!

dict_a = {'a':'这是字典a','b':'这是字典b'}c = dict_a.items()print(c)print(type(c))#输出dict_items([('a', '这是字典a'), ('b', '这是字典b')])#输出<class 'dict_items'>

对了!返回的不是列表,而是’dict_items’,而这里要合并需将’dict_items’转换为’List’。List(dict_a.items())+List(dict_b.items())就相当于两个列表合并,再转换为字典,相信你脑海已经有结果。

dict()合并字典
dict_a = {'a':'这是字典a','b':'这是字典b'}dict_b = {'c':'这是字典c','d':'这是字典d'}merge_dict = dict(dict_a,**dict_b)print(merge_dict)#输出{'a': '这是字典a', 'b': '这是字典b', 'c': '这是字典c', 'd': '这是字典d'}

这是dict方法,dict()函数用于创建一个字典。用法可以自行上网搜一下。

列表列表合并相加
List_a = ['a','b']List_b = ['c','d']merge_List = List_a+List_bprint(merge_List)#输出['a', 'b', 'c', 'd']

这个就简单的两个列表相加。

extend()方法合并
List_a = ['a','b']List_b = ['c','d']List_a.extend(List_b)print(List_a)#输出['a', 'b', 'c', 'd']

extend()该方法没有返回值,但会在已存在的列表中添加新的列表内容。

列表字典转换列表转字典
l1 = ['a','b']l2 = [1,2]z1 = zip(l1,l2)#这里方便理解分开写了z = dict(z1)print(z1)print(z)print(type(z1))'''输出<zip object at 0x0000028318EF40C8>{'a': 1, 'b': 2}<class 'zip'>'''

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
那为什么打印出print(z)是<zip object at 0x0000028318EF40C8>这个玩意呢?
再来看看

l1 = ['a','b']l2 = [1,2]z1 = List(zip(l1,l2))#这里方便理解分开写了print(z1)#输出[('a', 1), ('b', 2)]

zip()函数打印出来的就是这样,再加个 dict(z1)也就转换为字典了。

@L_301_40@字典转列表
dict_1 = {'a': 1, 'b': 2}a = List(dict_1.keys())b = List(dict_1.values())print(a)print(b)'''输出['a', 'b'][1, 2]'''

字典就是键值对,分别取出字典的键和值转换为列表就行了。

切片使用题目

输入字符串’123456789’,想提取出2468,13579。

解答一
s = '123456789'return_s = s[0:10:2]print(return_s)return_s1 = s[1:10:2]print(return_s1)#输出13579#输出2468

这是切片的使用,start : end : step
其实位置:start
末尾位置:end
步长:step

解答二
s = '123456789'a = []b = []for i in range(len(s)):    if int(s[i])%2 ==0:        a.append(s[i])    else:        b.append(s[i])print(a)print(b)#a输出['2', '4', '6', '8']#b输出['1', '3', '5', '7', '9'] 

这里采用了余数的计算方法,当然和切片使用没有关系,只是根据题目而言,这里这是做简单的 *** 作。

装饰器装饰器概念及用途

装饰器本质上还是函数,可以让其他函数在不做任何代码修改的前提下增加额外功能,它通常用于切面需求,例如:插入日志、性能测试、权限校验等。

写一个装饰器(题目)
def f2(func):    def f1():        return func()+1    return f1@f2def func():    print('func()函数')    return 1print(func())'''输出func()函数2'''

通过@符号和装饰器名实现装饰器函数与被装饰器函数联系。再说一遍,‘让其他函数在不做任何代码修改的前提下增加额外功能’。

不要装饰器,代码是这样的 总结

以上是内存溢出为你收集整理的python基础面试题全部内容,希望文章能够帮你解决python基础面试题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1185692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存