阿里巴巴集团2016校园招聘-Python工程师笔试题(附加题+部分答案)
前言
第一次网上笔试,被虐的很惨。一是不太习惯,最主要的是还是自己对Python的掌握,还不够熟练。下面是这次阿里笔试相关信息
笔试时间是,2015年8月23日,10:00——12:00
对于笔试题,20道单选题,40分钟。由于时间紧张,没有记录完整
对于附加题,5道题,80分钟。答题时,没看明白怎么答题。可能是除程序之外的内容和程序结果图,需要截图上传;程序应该写在网页上。
我的附加题只写了2行,程序是在附加题规定时间(80分)之外,完成的。下面是附加题及部分答案(仅供参考)。
内容
1、请尽可能列举python列表的成员方法,并给出一下列表操作的答案:
(1) a=[1, 2, 3, 4, 5], a[::2]=?, a[-2:] = ?
(2) 一行代码实现对列表a中的偶数位置的元素进行加3后求和?
(3) 将列表a的元素顺序打乱,再对a进行排序得到列表b,然后把a和b按元素顺序构造一个字典d。
2、用python实现统计一篇英文文章内每个单词的出现频率,并返回出现频率最高的前10个单词及其出现次数,并解答以下问题?(标点符号可忽略)
(1) 创建文件对象f后,解释f的readlines和xreadlines方法的区别?
(2) 追加需求:引号内元素需要算作一个单词,如何实现?
3、简述python GIL的概念, 以及它对python多线程的影响?编写一个多线程抓取网页的程序,并阐明多线程抓取程序是否可比单线程性能有提升,并解释原因。
4、用python编写一个线程安全的单例模式实现。
5、请回答一下问题:
(1) 阐述一下装饰器,描述符(property)、元类的概念,并列举其应用场景;
(2) 如何动态获取和设置对象的属性。
参考答案
1、
(1)a[::2] = [1, 3, 5], a[-2:] = [4, 5]
(2)注意,下面两种方式都有局限,如下
a = [1, 2, 3, 4, 5] print reduce(lambda x, y: x+y, [(x+3*((a.index(x)+1)%2)) for x in a]) # a中元素均不相同
# 或
print reduce(lambda x, y: x+y, [a[x]+(x+1)%2*3 for x in range(0, 5)]) # 只适用于a中元素有5个情况
(3)参考程序如下:
from random import shuffle a = [1, 2, 3, 4, 5] # 打乱列表a的元素顺序
shuffle(a) # 对a进行排序得到列表b
b = sorted(a, reverse=True) # zip 并行迭代,将两个序列“压缩”到一起,然后返回一个元组列表,最后,转化为字典类型。
d = dict(zip(a, b)) print d
2、统计一篇英文文章内每个单词的出现频率,并返回出现频率最高的前10个单词及其出现次数
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()
使用的 test.txt 内容如下,
3.1 Accessing Text from the Web and from Disk Electronic Books A small sample of texts from Project Gutenberg appears in the NLTK corpus collection. However, you may be interested in analyzing other texts from Project Gutenberg. You can browse the catalog of 25,000 free online books at http://www.gutenberg.org/catalog/, and obtain a URL to an ASCII text file. Although 90% of the texts in Project Gutenberg are in English, it includes material in over 50 other languages, including Catalan, Chinese, Dutch, Finnish, French, German, Italian,
阿里巴巴集团2016校园招聘-Python工程师笔试题(附加题+部分答案)的更多相关文章
- 网易2014校园招聘杭州Java笔试题
10) ABC http://soft.chinabyte.com/os/56/12516056.shtml 11) BD. 12) AC. http://blog.sina.com.cn/s/blo ...
- 随手科技(随手记)2017招聘Java工程师笔试题
一 如何解决多台web服务器粘性会话的问题? 粘性session:web服务器会把某个用户的请求,交给tomcat集群中的一个节点,以后此节点就负责该保存该用户的session,如果此节点挂掉,那么 ...
- 【面试题】源石智影科技Python工程师笔试题
哈哈 上图
- Java工程师笔试题整理[校招篇]
Java工程师笔试题整理[校招篇] 隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...
- 转:一份基础的嵌入式Linux工程师笔试题
一. 填空题: 1. 一些Linux命令,显示文件,拷贝,删除 Ls cp rm 2. do……while和while……do有什么区别? 3. Linux系统下.ko文件是什么文件?.so文件是什么 ...
- iOS开发工程师笔试题
iOS开发工程师笔试题 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? Object-c的类不可以多重继承:可以 ...
- PHP工程师笔试题
PHP工程师笔试题 提示:请将答案写在另外一张空白纸上,并在30分钟内完成. PHP 请写出include.require.include_once.require_noce的区别. include是 ...
- python面试笔试题汇总
Python面试攻略(嗨谈篇) 110道python面试笔试题汇总,你能答对几道? Python 面试问答 Top 25 2018 年最常见的 Python 面试题 & 答案
- 复盘鼎甲科技2020web开发工程师-笔试题(校招)
复盘鼎甲科技2020web开发工程师-笔试题(校招) 本试卷以W3C规范为准,JavaScript使用ES5标准,除特别说明外,不考虑各个浏览器之间差异. 一.多项选择题 以下标签是行内元素(inli ...
随机推荐
- MD5加密与验证
package com.study; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException ...
- SQL中的内连接与外连接
关于关系代数连接运算的介绍请查看下面链接 http://www.cnblogs.com/xidongyu/articles/5980407.html 连接运算格式 链接运算由两部分构成:连接类型和连接 ...
- 部署到IIS上的网站打开时总是显示无法找到资源解决方案
1.首先修改项目目录的访问权限:右键->属性->安全里面找到组名或用户名 ->编辑->添加一个用户取名everyOne并设置可以修改即可 2.然后在IIS下面,选中你的mvc项 ...
- 十天冲刺---Day3
站立式会议 站立式会议内容总结: git上Issues新增内容: 燃尽图 照片 组长情绪爆炸是很可怕的事情.这里自责一下. 进度缓慢是一件非常头疼的事情.还有每个人的时间都很紧张,除了学习,还有各种工 ...
- Cause: org.apache.ibatis.reflection.ReflectionException: Could not set property 'orderdetails' of 'class com.luchao.mybatis.first.po.Orders' with value 'Orderdetail [id=null, ordersId=3, itemsId=1, it
从上面异常的解释来看是因为反射不能将Orders设置到orderdetails属性上,仔细检查了MyBatis的配置文件,发现: <collection property="order ...
- 直播CDN架构随想
互联网内容载体变迁历程,文字--图片/声音--视频--VR/AR----从直播1.0秀场时代(YY).2.0游戏直播(斗鱼.虎牙.熊猫)到如今全民直播3.0泛生活娱乐时代(映客.花椒),国外直播App ...
- Java--剑指offer(5)
21.输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对 ...
- PHP中CURL方法curl_setopt()函数的参数
PHP CURL curl_setopt 参数 bool curl_setopt (int ch, string option, mixed value)curl_setopt()函数将为一个CURL ...
- JAVA程序员一定知道的优秀第三方库(2016版)
几乎每个程序员都知道要“避免重复发明轮子”的道理——尽可能使用那些优秀的第三方框架或库,但当真正进入开发时,我却经常发现他们有时并不知道那些轮子在哪里.最近,我在业余时间带几个年轻的程序员一起做了一个 ...
- servlet注解@PostConstruct与@PreDestroy
从Java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解(Annotion):@PostConstruct和@PreDestroy.这两个注解被用来修饰一个非静态的vo ...