阿里巴巴集团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 ...
随机推荐
- HTTP请求头参数
Accept-Language: zh-cn,zh;q=0.5 意思:浏览器支持的语言分别是中文和简体中文,优先支持简体中文. 详解: Accept-Language表示浏览器所支持的语言类型: ...
- JSON字符串——后台解析系列
以前我们都是讲JSON字符串获取后,在前台进行展示.今天小编就交给大家后台解析展示数据的方法.非常方便,就以下代码: JObject obj = JObject.Parse(data); string ...
- 东大OJ-麦森数
1064: 麦森数 时间限制: 1 Sec 内存限制: 128 MB 提交: 52 解决: 9 [提交][状态][讨论版] 题目描述 形如2P-1的素数称为麦森数,这时P一定也是个素数.但反过来不 ...
- 消息队列写入内容后,读出来的自动包裹了<string>标签,自定义格式化器解决该issue
/// <summary> /// 该格式化器使输入即输出 /// </summary> public class StringFormatter : IMessageForm ...
- parse date receiving from mvc jsonresult
if we received data like this: ,"Date":"\/Date(1410969600000)\/", we can parse i ...
- Android-动画简介
Android中动画分为3种: ween Animation:通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果,即是一种渐变动画: 也称View动画:也叫渐变动画,针对View的动画, ...
- ubuntu下启动、关闭tomcat,查看tomcat运行日志
启动:一般是执行sh tomcat/bin/startup.sh 停止:一般是执行sh tomcat/bin/shutdown.sh查看:执行ps -ef |grep tomcat 输出如下 *** ...
- 不停止MySQL服务的情况下修改root的密码
首先我们得知道一个MySQL普通用户的密码 这里我来记录一下我的操作过程 这里我刚刚到一家公司上面装的是cacti,但是之前的运维不记得MySQL的root密码了 但是他知道cacti的密码, 用户: ...
- [转]Cookie/Session机制详解
原文地址:http://blog.csdn.net/fangaoxin/article/details/6952954 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用 ...
- java中会存在内存泄漏吗,请简单描述。
内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中.Java 使用有向图的方式进行垃圾回收管理,可以消除引用循环的问题,例如有两个对象,相互引用,只要它们和根进程不可达的,那么GC也是可以 ...