python基础复习突击面试(1)

1、map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
例:
def f(x):
return x*x
print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
输出结果:[1, 4, 9, 10, 25, 36, 49, 64, 81]
2、对列表进行求和排序,是list1.sort( ),注意排序后列表本身就被改变了,不需要再赋值给一个变量,sum(list1)得到列表中每个元素的求和值
3、对list1[1,2,3,4,5]的偶数位置的元素进行加3,最后求和。
>>> p=sum(map(lambda x:x+3,list1[1::2]))
>>> print p
4、对list1=[-2,-1,3,4]的绝对值进行排序
>>> sorted(list1,key=abs)
[-1, -2, 3, 4]
5、闭包:内部函数可以使用外部函数变量的行为。
例:https://www.cnblogs.com/ChrisChen3121/p/3208119.html
def foo():
m=3
n=5
def bar():
a=4
return m+n+a
return bar
6、Python中的变量作用域:local-gloabl-enclosed(闭包)-bulit_in
# local namespace: 作用范围为当前函数或者类方法
# global namespace: 作用范围为当前模块
# build-in namespace: 作用范围为所有模块
7、一行代码生成 [1,4,9,16,25,36,49,64,81,100],使用列表生成式,[i*i for i in range(1,11)]
8、请将 "1,2,3",变成 ["1","2","3"],使用spilt内置函数
>>> '1,2,3'.split(',')
['1', '2', '3']
9、字典元素的键不能为可变对象,比如{[1,2]:3}是错误的,而{(1:2):3}是对的,列表是可变元素,元组是不可变元素。注:但值是可变的。
10、list 对象 alist [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}], 请按 alist 中元素的age 由大到小排序;
>>> sorted(alist,key=lambda x:x['age'],reverse=True)
11、两个 list 对象 alist ['a','b','c','d','e','f'], blist ['x','y','z','d','e','f'],请用简洁的方法合并这两个 list,并且 list 里面的元素不能重复:
12、>>> from math import sqrt
>>> print sqrt(3)*sqrt(3)==3 ##打印结果应该是3.0
False
13、>>> type(1+2L*3.14)
<type 'float'>
14、代码实现:输入一个列表[0,1,2,3,4,5,6,8,9,10],输出数字是偶数,且该数字的位置也是偶数?要求输出为[0,2,6,8,10]
#!/usr/bin/env python

temp=[]
def fun(list_name):
count = len(list_name)
for i in range(count):
if i%2==0 and list_name[i]%2==0:
temp.append(list_name[i])
return temp
list1=[0,1,2,3,5,4,6,7,8,9,10]
print 'the answer is',fun(list1)

15、把字典的Key-Value值翻转?
>>> dict2={1:'a',2:'b',3:'c'}
>>> def test(dict_name):
... return dict( (v,k) for k,v in dict_name.iteritems() )
...
>>> test(dict2)
{'a': 1, 'c': 3, 'b': 2}
## iteritems()方法是字典项生成器,紧接着是列表表达式 ##iteritems把字段的键值对放在一个列表项中,返回的是一个迭代器,通过yield的next( )方法来取值
>>> print dict1.items() ##items()方法是将字典的每个项作为元组,然后把所有把所有元组放在一个列表容器中
[(1, 7), (2, 8), (3, 9)]

字典翻转的简单实现(字典生成器):
d1 = {'name':'yhc','sex':'man'}
def test(dict_name):
return {v:k for k,v in dict_name.items()}
>>> test(d2)
{'yhc': 'name', 'man': 'sex'}

16、python提供两个对象身份比较符,分别是is和is not;变量无需创建,但是需要赋值才能使用
17、s='abcdefg',s[::2]='aceg',s[-2:-5]='',s[::-1]='gfedcba' ##右边最小是-1
18、所有标准对象均能用于布尔测试,包括空字典{}、空字符串' ',空列表[]、空元组和None
19、>>> 'abc'>'xyz'
False
>>> (3,2)<('a','b')
True
比较第一个元素的ASCII值,字符应该视为长度为1的字符串,整个元组可以作为字典的key,而列表是不行的
20、min和max都是内置函数,不能单独作为变量存在。while True: pass是正确的语法

 

 此篇文章,还有32道题目,在我的面经中,详情看下面。

我会持续更新面试题目,包括linux,前端(vue,jquery,css)、python、mysql和redis的面经题目,后期加入golang。可以加我qq 2093905919或者微信 18828004657,跟我聊聊。(注:可以分享一部分面试题目,觉得可以的话,剩下的全部面试题目(多年经验,非常多而广的题目,适合突击面试复习,适合运维工程师,python工程师,运维开发,甚至前端开发(vue,asp,jquery)等等),需要打赏200元,绝对物超所值)

 

 

posted @ 2020-06-01 10:50  兮瓜公籽  阅读(601)  评论(0编辑  收藏  举报