持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第24天,点击查看活动详情
前言
数据类型是每种编程语言最基础的部分,Python数据类型也是面试的高频问答点。熟悉数据类型的各种特点及技巧,对我们的基础编程有很大帮助。那么你真的掌握了python数据类型吗?来看看这些面试题你会不会。
字典
1.有一个字典 dic = {"a": 1, "b": 3, "c": 2},请按字典的value来排序。
答:使用sorted排序,sorted(dic.items(), key=lambda x:x[-1])
2. 字典和json有什么区别?
答:json和和Python的dict非常类似,都是key-value的形式,而且json和dict也可以非常方便的通过dumps和loads互转,但它们之间还是有区别的:
- json:是一种数据格式,是纯字符串。可以被解析成python的dict或其他形式。
- dict:是一个完整的数据结构,是对hash table这一数据结构的实现,是一套从存储到提取都封装好的方案。它使用内置的hash函数来规划key对应的value的存储位置。
3. 字典中的数据有没有顺序?
答:字典的数据没有顺序,如果要排序可用sort和sorted函数进行排序。
4. Python可变类型及不可变类型有哪些?
答:可变指的是内存中的值是否可以被改变,不可变类型指的是对象所在内存块里面的值不可以
改变。可变类型有:列表、字典;不可变类型有:字符串、元组、数值。
字符串
1. 如何理解 Python 中字符串中的“\”字符
答:""有三种含义:
- 转义字符;
- windows中路径名中用来连接路径名;
- 代码手动换行符
2. 请反转字符串"abcde"
答:"abcde".[::-1]
3. 请将字符串"abcde"每个字符之间用"-"连接
答:"-".join("abcde")
列表
1. 将列表alist=[1,5,8,3,7]降序排序
答:alist.sort(reverse=True)
2. 如何获取2在列表alist=[1,3,4,2,6,2]中出现的次数?
答:使用count来获取:alist.count(2)
3. 下面代码执行的输出会是什么?
alist = [1,3,4,2,6,2]
print(alist[8:])
答:会输出空列表[], 但如果是执行alist[8],将会输出IndexError错误。
4. 写一个列表生成式,产生一个公差为 11 的等差数列
答:[x * 11 for x in range(5)]
5. 如何删除alist=[1,3,4,2,6,2]中的重复元素?
答: list(set(alist))
6. 下面代码输出结果是什么?并解释
def func(val, alist=[]):
alist.append(val)
return alist
list1 = func(1)
list2 = func(2, [])
list3 = func('a')
print(list1, list2, list3)
答:输出[1, 'a'] [2] [1, 'a']。因为新列表只在函数被定义的时刻创建一次。当func()没有指定alist时,会在上一个list的基础上append。
集合
1. 快速去除列表中的重复元素
In [1]: alist = [1,3,4,2,6,2]
In [2]: set(alist)
Out[2]: {1, 2, 3, 4, 6}
2. 取两集合的交集
In [6]: a = {1,3,4,6}
In [8]: b = {3,4}
In [9]: a&b
Out[9]: {3, 4}
3. 两个集合,取另一集合没有的元素
In [10]: a = {1,3,4, 6}
In [11]: b = {3,4}
In [12]: a - b
Out[12]: {1, 6}
结语
本文分别总结了Python数据类型【字典、列表、字符串、集合】的高频面试题,这些题目都很基础。我们的基础知识必须要扎实,才能更好的应对开发工作。