Python高频面试题之数据类型

200 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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数据类型【字典、列表、字符串、集合】的高频面试题,这些题目都很基础。我们的基础知识必须要扎实,才能更好的应对开发工作。