python笔试题---实践知识点

  1. 请尽可能列举python列表的成员方法,并给出一下列表操作的答案:
  • a=[1, 2, 3, 4, 5], 一行代码实现对列表a中的偶数位置的元素进行加3后求和?

答:方法一:reduce(lambda x,y:x+y,[i+(a.index(i)+1)%2*3 for i in a])

方法二:reduce(lambda x,y:x+y,[a[i]+(i+1)%2*3 for i in range(0,len(a))]

  • 将列表a的元素顺序打乱,再对a进行排序得到列表b,然后把a和b按元素顺序构造一个字典d。 答:
shuffer(a)
b = sorted(a, reverse=True)
dict_new = dict(zip(a, b))

  1. 用python实现统计一篇英文文章内每个单词的出现频率,并返回出现频率最高的前10个单词及其出现次数,并解答以下问题?(标点符号可忽略)
  • 创建文件对象f后,解释f的readlines和xreadlines方法的区别?

答:1.readlines() 一次读取整个文件,象 .read() 一样且.readlines() 自动将文件内容分析成一个行的列表。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。

2.readlines返回列表,xreadlines返回迭代器。

  • 追加需求:引号内元素需要算作一个单词,如何实现?
def findTopFreqWords(filename, num=1):
    'Find Top Frequent Words:'
    fp = open(filename, 'r')
    text = fp.read()
    fp.close()

    lst = re.split('[0-9\W]+', text)

    # create words set, no repeat
    words = set(lst)
    d = {}
    for word in words:
        d[word] = lst.count(word)
    del d['']
    
    result = []
    for key, value in sorted(d.iteritems(), key=lambda (k,v): (v,k),reverse=True):
        result.append((key, value))
    return result[:num]

def test():
    topWords = findTopFreqWords('test.txt',10)
    print topWords

if __name__=='__main__':
    test()

3、简述python GIL的概念, 以及它对python多线程的影响?编写一个多线程抓取网页的程序,并阐明多线程抓取程序是否可比单线程性能有提升,并解释原因。

4、用python编写一个线程安全的单例模式实现。

5、请回答一下问题:

(1) 阐述一下装饰器,描述符(property)、元类的概念,并列举其应用场景;

(2) 如何动态获取和设置对象的属性。

转载于:https://my.oschina.net/u/3127014/blog/2986103

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值