1.请写出一段 python 代码实现删除一个 list 里面的重复元素
1. l1 = ['b','c','d','b','c','a','a']
2. l2 = list(set(l1))
3. l2.sort(key=l1.index)
4. print l2
1. def delList(L):
2. L1 = []
3. for i in L:
4. if i not in L1:
5. L1.append(i)
6.
7. return L1
8.
9. print(delList([1,2,2,3,3,4,5]))
10. print(delList([1,8,8,3,9,3,3,3,3,3,6,3]))
换成列表推导式更简单:
1. l1 = ['b','c','d','b','c','a','a']
2. l2 = []
3. [l2.append(i) for i in l1 if not i in l2]
4. print l2
?
2. 编程用 sort 进行排序,然后从最后一个元素开始判断
?
3.Python 里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)
?
4.Python 里面 match()和 search()的区别?
1. >>>print(re.match(‘super’, ‘superstition’).span())
2.
3. (0, 5)
4.
5. >>>print(re.match(‘super’, ‘insuperable’))
6.
7. None
8.
9. >>>print(re.search(‘super’, ‘superstition’).span())
10.
11. (0, 5)
12.
13. >>>print(re.search(‘super’, ‘insuperable’).span())
14.
15. (2, 7)
?
5.用 Python 匹配 HTML tag 的时候,<.*>和<.*?>有什么区别?
术语叫贪婪匹配( <.*> )和非贪婪匹配(<.*?> )
?
6.Python 里面如何生成随机数?
使用 random 模块。
1)随机整数:random.randint(a,b):返回随机整数 x,a<=x<=b
random.randrange(start,stop,[,step]):返回一个范围在(start,stop,step)之间的随机整数,不包括结束值
2)随机实数:random.random( ):返回 0 到 1 之间的浮点数,
random.uniform(a,b):返回指定范围内的浮点数。
?
7.请用代码实现一个冒泡排序?
?
8.请用代码实现输出:1,2,3,5,8,13,21,34,55,89……
这道题考的是斐波那契数列的实现。
用生成器实现:
?
9.请解释下 TCP/IP 协议和 HTTP 协议?
HTTP 协议:
?
10.Python 里面如何实现 tuple 和 list 的转换?
?
11.请写出以下 Linux 的 SHELL 命令?
12. Python 如何实现单例模式?请写出两种实现方法?
在 Python 中,我们可以用多种方法来实现单例模式:
?
?
13.Python 如何生成随机数?
?
14.Mysql 集群的优缺点?
15.你用的 Mysql 是哪个引擎,各引擎之间有什么区别?
主要MyISAM 与 InnoDB 两个引擎,其主要区别如下:
InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM 就不可以了;
MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用;
InnoDB 支持外键,MyISAM 不支持;
MyISAM 是默认引擎,InnoDB 需要指定;
InnoDB 不支持 FULLTEXT
类型的索引;
InnoDB 中不保存表的行数,如select count() from table 时,InnoDB;需要扫描一遍整个表来 计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。注意的是,当 count()语句包含
where 条件时 MyISAM 也需要扫描整个表;
对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM 表中可以和其他字 段一起建立联合索引;清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建
表;
InnoDB 支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like '%lee%'
?
16. 数据库的优化?
1.优化索引、SQL 语句、分析慢查询;
2.设计表的时候严格根据数据库的设计范式来设计数据库;
3.使用缓存,把经常访问到的数据而且不需要经常变化的数据放在缓存中,能节约磁盘 IO
4.优化硬件;采用 SSD,使用磁盘队列技术(RAID0,RAID1,RDID5)等
5.采用 MySQL 内部自带的表分区技术,把数据分层不同的文件,能够提高磁盘的读取效率;
6.垂直分表;把一些不经常读的数据放在一张表里,节约磁盘 I/O;
7.主从分离读写;采用主从复制把数据库的读操作和写入操作分离开来;
8.分库分表分机器(数据量特别大),主要的的原理就是数据路由;
9.选择合适的表引擎,参数上的优化
10.进行架构级别的缓存,静态化和分布式;
11.不采用全文索引;
12.采用更快的存储方式,例如:NoSQL 存储经常访问的数据**。
?
17. Mysql 数据库中怎么实现分页?
select * from table limit (start-1)*limit,limit; 其中 start 是页码,limit 是每页显示的条数。
?
18. sql 语句怎么看效率?
SQLServer2005-->新建一个查询-->输入语句 SELECT * FROM Person.Contact
执行(F5)-->Ctrl+L.
?
20.Python 中调用 mongo 数据库的包叫什么?
Pymongo。
?
未完。。。
?
?