python自学

Python面试必刷题系列(3)

2019-08-03  本文已影响3人  arrnos

下面给大家分享的是python面试必刷题系列文章,后面会陆续整理更多python相关的问题给大家,无论是求职者还是新人都可以通过面试题来考察自己的能力缺陷。

1. 已知 list0 = [1,2,3,1,2],请对 list0中的元素去重,但是需要保证原有顺序。

list0 = [1,0,3,7,7,5]
format_list = list(set(list0))
format_list.sort(key=list0.index)
print (format_list)

2. 按照下面列表中的字典key:年龄进行降序排序

d1 = [
    {'name':'alice', 'age':38},
    {'name':'bob', 'age':18},
    {'name':'Carl', 'age':28},
]

代码:

sorted(d1,key = lambda x : x["age"], reverse=True)

3. 说说Python3 和 Python2 之间的区别?

​ (1) 默认编码方式:Py2是ASCII 码,Py3是Unicode;

​ (2) 字符串存储方式的不同:

py2:
    unicode         v = u"root"    本质上用unicode存储(万国码)
    (str/bytes)     v = "root"     本质用字节存储
py3:
    str             v = "root"     本质上用unicode存储(万国码)
    bytes           v = b"root"    本质上用字节存储

4. 一行代码展开该列表[[1,2],[3,4],[5,6]],得出[1,2,3,4,5,6]

[j for i in a for j in i]

5. 字典操作中 del 和 pop 有什么区别?

6. 简述解释型和编译型编程语言

【编译型语言】

把源程序全部编译成二进制代码形式的可直接执行程序。

特点:执行速度快、效率高、占内存少;跨平台性差、程序难于调试。

例子:C、C++

【解释型语言】

不需要预先编译,源程序由解释器解释一句执行一句,直到结束。

特点:执行速度慢、效率低、占内存高(因为运行时需要启动解释器);便于调试、跨平台性好(有相应解释器就行)。

例子:Python、Java、JavaScript

需要注意的是:

java是一类特殊的编程语言,Java程序也需要编译,但是却没有直接编译为机器语言,而是编译为字节码,然后在Java虚拟机上以解释方式执行字节码。

7. 求列表list1和list2中元素的交集,并集和差集

set1, set2 = set(list1), set(list2)
print set1&set2, set1|set2, set1-set2, set2-set1

8. 合并两个字典 a 和 b 有哪些方法?

dict(a, **b)
dict(a.items() + b.items())
c = {}  c.update(a)  c.update(b)

9. Python 解释器种类以及相关特点?

Python程序需要经过解释器解释后才能执行,可以基于不同语言开发解释器,以下五种Python解释器最常见:

10. 如何把元组("a","b")和元组(1,2),变为字典{"a":1,"b":2}

dict([(k, v) for k, v in zip(a, b)])

11. 一行代码交换字典d = {"A" : 1,"B" : 2}的键和值?

dict([(v,k) for k,v in d.items()])

12. 请将[i for i in range(3)]改成生成器

(i for i in range(3))

13. 如何区别可变数据类型和不可变数据类型

注意:

元组被定义为:只读列表,即数据可以被查询,但不能被修改。当我们修改元组的内容时,发现其内存地址不会变。

14. 如何打乱一个list中的元素?

from random import shuffle
mylist=[0,1,2,3,4,5,6,7,8]
shuffle(mylist)
print(mylist)
欢迎关注-算法研习社.png
上一篇 下一篇

猜你喜欢

热点阅读