码迷,mamicode.com
首页 > 编程语言 > 详细

python面试题

时间:2019-04-24 10:37:37      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:python面试题   nes   txt   自然数   list   func   readlines   pytho   否则   

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面试题   nes   txt   自然数   list   func   readlines   pytho   否则   

原文地址:https://www.cnblogs.com/xiaohuhu/p/10760929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!