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面试题的主要内容,如果未能解决你的问题,请参考以下文章

最强面试题整理第一弹:Python 基础面试题(附答案)

最强面试题整理第一弹:Python 基础面试题(附答案)

最强面试题整理第一弹:Python 基础面试题(附答案)

最强面试题整理第二弹:Python 进阶面试题(附答案)

最强面试题整理第二弹:Python 进阶面试题(附答案)

最强面试题整理第二弹:Python 进阶面试题(附答案)