面经-python基础篇

题目来源于:https://www.nowcoder.com/discuss/33737


【Part1 数据结构】

Q1. tuple和list的异同?
相同点:二者都是序列类型的容器对象,可以存放不同类型的数据,支持切片、迭代等操作。
不同点:
1)元组不可变,列表可变(支持insert/pop/sort/reverse/remove/append等)。同样大小的数据,元组初始化和迭代的速度更快,占用的空间更少;
2)元组可作为字典的key,而列表不能;
3)元组可用于存储异构数据,比如一个人的姓名、年龄、身高,而列表多用于存储同构数据。


Q2. 常用的数据结构及应用场景(list, tuple, dic, set)?
(1)list [ ]:列表,可变。内存占用小,速度慢。
(2)tuple ( ):元组,不可变。
(3)dict {a:b}:字典,key-value对,内存占用大,速度快。其中key是不可变对象,故list不能作为dict的key。
(4)set {}:集合(与数学上的集合同义),元素具有唯一性。


Q3. list是怎样实现的?
可参考:
https://blog.csdn.net/siyue0211/article/details/80560783
https://www.cnblogs.com/Vito2008/p/5141546.html


Q4. list有哪几种添加元素的方法,能否从表头插入元素?
list.insert(idx,a) #在idx位置插入a
list.append(a) #在idx位置加入a
list1.extend(list2) #合并list1与list2


Q5. 如何获取list中最后一个元素?
list[len(list)-1]
list[-1]
list.pop() #此操作会将该元素从list中删除



【Part2 效率优化】

Q1. 如何提高Python的运行效率?
可参考:
https://www.cnblogs.com/zhizhan/p/4883806.html



【Part3 运行结果】

Q1. a = [1, 2, 3, 4], b = a, b[0] = 100, print(a)的结果是什么?
直接赋值是对原对象的引用,此处a和b指向同一个对象,b[0]=100修改了原对象,故结果为[100,2,3,4]


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值