python面试题
Posted xiaohuhu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python面试题相关的知识,希望对你有一定的参考价值。
1、写一个函数,将两个dict(key是数字,value是string)进行合并,函数返回合并后的dict,规则如下:如果一个key仅仅存在于其中一个dict中,则直接加入合并后的dict;如果一个key在两个dict中都存在,那么给定一个choice值,choice可以是任何string,如果choice是任一个dict中的value,则写入,否则不写入。
def function(lefdict,rightdict,choice):
samelist=lefdict.keys() & rightdict.keys() #dict.keys()返回的是一个可迭代对象,取两个dict的keys的交集
diflist=lefdict.keys() ^ rightdict.keys() #取两个dict的keys的不同集
newdict={}
for key,value in lefdict.items():
if key in diflist:
newdict[key]=value
elif key in samelist:
if value==choice:
newdict[key]=value
for key,value in rightdict.items():
if key in diflist:
newdict[key]=value
elif key in samelist:
if value==choice:
newdict[key]=value
print(samelist,diflist)
print(newdict)
return newdict
function({1:‘a‘,2:‘b‘,3:‘c‘},{4:‘f‘,2:‘b‘,3:‘d‘},‘b‘)
2、有两个文本,file1.txt和file2.txt,两个文件都是如下:
……
123
456
3421
……
每一行要么是一个空行 要么是一个自然数,清写一个函数得到两个文件中共有的自然数,并把他们写入另一个文件file3.txt
def function(file1,file2,file3):
list1=[]
list2=[]
with open(file1,‘r‘) as f:
for i in f.readlines():
if i!=‘\n‘:
list1.append(i[:-1]) #去除\n
with open(file2,‘r‘) as f:
for i in f.readlines():
if i!=‘\n‘:
list2.append(i[:-1])
print(list1,list2)
list3=[j for j in list1 if j in list2] #取两个list的交集
print(list3)
with open(file3,‘w‘) as f:
for i in list3:
f.write(str(i))
function("d:\\1.txt","d:\\2.txt","d:\\3.txt")
以上是关于python面试题的主要内容,如果未能解决你的问题,请参考以下文章