基础题
1.Python合并字典,和相同的key的value如何相加?
x={“apple”:1,“banana”:2}
y={“banana”:10,“pear”:11}
from collections import Counter
x,y = Counter(x),Counter(y)
z = dict(x+y)
print(z) #字典类的构造函数,没有参数返回空字典
2.输入目录,输出打印全部文件以及文件夹
import os
def traverse(f):
fs = os.listdir(f)
for f1 in fs:
tmp_path = os.path.join(f,f1)
if not os.path.isdir(tmp_path):
print('文件:%s'%tmp_path)
else:
print('文件夹: %s'%tmp_path)
traverse(tmp_path)
path = "/home/python/01_page"
traverse(path)
3.list = [1,3,5,8,10,13,18,36,78]
[x for x in list[: : 2] if x%2==0]的结果是? #列表从头取到尾,步长为2
10,18,78
编程题
1.有一个从1到10的连续整数集合 a = [1,2,3,,,,,10],假如队列有且只有一个元素重复,如何最快查找到这个数字?
>>> from collections import Counter
>>> Counter([11,22,11,44,22,33])
Counter({11: 2, 22: 2, 33: 1, 44: 1})
使用Counter计算函数可以实现此功能,
2.下面的集合如何实现以id去重
[{"id":1,"name":"zhangsan"},{"id":2,"name":"lisi"},{"id":2,"name":"list"},{"id":3,"name":"wangwu"}]
3.有两个集合a = [1,2,3,4,5] b=[3,4,5,6] 使用代码计算交集,并集,差集
newlist = [val for val in b if val in a] #交集
print list(set(a).union(set(b)))#并集
print list(set(a).deference(set(b)))#差集