python笔试题1-21

1、如何实现对python列表去重并保持原先顺序

答:再创建一个列表,依次循环原列表元素并判断,若当前元素不在新建列表中,则添加即可

 

2、现在有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数,生成列表[{'a':'b'},{'c':'d'}]

答:

#答案一
test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)]
print(test(t1,t2))
#答案二
print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2))))
#还可以这样写
print([{i:j} for i,j in zip(t1,t2)])

3、请给出二分查找的python示例代码

答:

  

def recursion_search(data_source, find_n):
mid = len(data_source) // 2
if len(data_source) >= 1:
if find_n > data_source[mid]:
recursion_search(data_source[mid + 1:], find_n)
elif find_n < data_source[mid]:
recursion_search(data_source[:mid], find_n)
else:
print(data_source[mid])
else:
print("not found !")

4、在python字符串格式化中,%与.format的主要区别

答:%中如果传数字,必须指定类型,而format不用

 

5、*args,**kwargs在什么情况下会用到,请举例**kwargs应用

答:*args,**kwargs一般用于函数传多个值,

  **kwargs示例def x(**kwargs):

          return kwargs

        x(a=1)

6、x = 'foo'

  y = 2

  print(x+y)

  A.foo B.foo foo C.foo 2 D. an exception throw

7、

kvps = {'1':1,'2':2}
theCopy = kvps
kvps['1'] = 5
sum = kvps['1'] + theCopy['1']
print(sum)

A.1 B.2 C.7 D.10

8、sys.path.append('/root/mods')

  A.改变python启动路径 B.改变python当前工作目录  C.添加一个新的python模块搜索路径  D.从mods中移除所有文件夹

 

9、

country_counter = {}

def addone(country):
if country in country_counter:
country_counter[country] += 1
else:
country_counter[country] = 1
addone('China')
addone('Japan')
addone('china')
A.0 B.1 C.2 D.3 E.4

10、

names1 = ['Amir','Barry','Chales','Dao']
names2 = names1 #['Alice','Barry','Chales','Dao']
names3 = names1[:]
names2[0] = 'Alice'
names3[1] = 'Bob'#['Alice','Bob','Chales','Dao']
sum = 0
for ls in (names1,names2,names3):
if ls[0] == 'Alice':
sum += 1
if ls[1] == 'Bob':
sum += 10
print(sum)

A.11 B.12 C.21 D.22 E.33

11、

d = lambda p:p*2
t = lambda p:p*3
x= 2
x = d(x)
x = t(x)
x =d(x)
print(x)
答:x = 24

12、

x = True
y = False
z = False
if x or y and z:
print('yes')
else:
print('no')
答:yes (and优先级大于or)

13、

python中如何实现touple与list转换

答:touple(list)->touple     list(touple)->list

14、

请写出一段代码实现删除一个列表里重复的元素

答:

nl = []
for i in l:
if i in nl:
continue
nl.append(i)

15、如何得到列表list的交集与差集

  答:list=l1&l2

    list=l1-l2

16、以下代码会输出什么

def ex(val,list=[]):
list.append(val)
return list
list1 = ex(10)
list2 = ex(123,[])
list3 = ex('a')
print(list1,list2,list3)
答:[10, 'a'] [123] [10, 'a']

17、python中如何书写可变参数和关键字参数

  答:可变参数要写在关键字参数后面

18、什么是lambda表达式

  答:lambda函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数

19、re的match与search有什么区别

  答:match会从头开始匹配,头部不一样则失败,search会全文匹配

20、1 or 2 与 1 and 2 分别输出什么,为什么

  答:输出1,2   

#python 中的and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值

21、1 < (2 == 2)与1 < 2 == 2 输出什么,为什么

  答:flase,True原因同上

 

 
posted @ 2018-02-11 16:20  风火林山  阅读(331)  评论(0编辑  收藏  举报