python面试常见问题及知识点整理之列表、字典与综合部分
• 数据类型 - 列表
1.已知 AList = [1,2,3,1,2]
,对 AList 列表元素去重,写出具体过程。
2.如何实现 "1,2,3" 变成 ["1","2","3"]
3.给定两个 list,A 和 B,找出相同元素和不同元素
4. [[1,2],[3,4],[5,6]]
一行代码展开该列表,得出 [1,2,3,4,5,6]
5. 合并列表 [1,5,7,9]
和 [2,2,6,8]
6. 如何列表的元素?
• 数据类型 - 字典
1.字典操作中 del 和 pop 有什么区别
2. 按照字典的内的年龄排序
d1 = [ {'name':'alice', 'age':38}, {'name':'bob', 'age':18}, {'name':'Carl', 'age':28}, ]
3. 请合并下面两个字典 a = {"A":1,"B":2}
,b = {"C":3,"D":4}
4. 如何使用生成式的方式生成一个字典,写一段功能代码。
5. 如何把元组 ("a","b")
和元组 (1,2)
,变为字典 {"a":1,"b":2}
• 数据类型 - 综合
1.下列字典对象键类型不正确的是?
A:{1:0,2:0,3:0}
B:{"a":0, "b":0, "c":0}
C: {(1,2):0, (2,3):0}
D: {[1,2]:0, [2,3]:0}
2. 如何交换字典 {"A":1,"B":2}的键和值
3. Python 里面如何实现 tuple 和 list 的转换?
4. 我们知道对于列表可以使用切片操作进行部分元素的选择,那么如何对生成器类型的对象实现相同的功能呢?
5. 请将 [i for i in range(3)]
改成生成器
6. a="hello" 和 b="你好" 编码成 bytes 类型
7. 下面的代码输出结果是什么?
a = (1,2,3,[4,5,6,7],8) a[2] = 2
8. 下面的代码输出的结果是什么?
a = (1,2,3,[4,5,6,7],8) a[3][0] = 2
列表:
1.已知 AList = [1,2,3,1,2]
,对 AList 列表元素去重,写出具体过程。
答:
list(set(AList))
2.如何实现 "1,2,3" 变成 ["1","2","3"]
答:
s = "1,2,3" print(s.split(","))
3.[[1,2],[3,4],[5,6]] 一行代码展开该列表,得出 [1,2,3,4,5,6]
答:
l = [[1,2],[3,4],[5,6]] x=[j for i in l for j in i] print(x)
4.合并列表 [1,5,7,9] 和 [2,2,6,8]
答:使用 extend 和 + 都可以。
a = [1,5,7,9] b = [2,2,6,8] a.extend(b) print(a)
5.如何打乱一个列表的元素?
答:
import random a = [1, 2, 3, 4, 5] random.shuffle(a) print(a)
数据类型 - 字典
1.字典操作中 del 和 pop 有什么区别
答:
del 可以根据索引(元素所在位置)来删除的,没有返回值。 pop 可以根据索引弹出一个值,然后可以接收它的返回值。
2.按照字典的内的年龄排序
d1 = [ {'name':'alice', 'age':38}, {'name':'bob', 'age':18}, {'name':'Carl', 'age':28}, ]
答:
d1 = [ {'name': 'alice', 'age': 38}, {'name': 'bob', 'age': 18}, {'name': 'Carl', 'age': 28}, ] print(sorted(d1, key=lambda x:x["age"]))
3.请合并下面两个字典 a = {"A":1,"B":2},b = {"C":3,"D":4}
答:
合并字典方法很多,可以使用 a.update(b) 或者下面字典解包的方式
a = {"A":1,"B":2} b = {"C":3,"D":4} print({**a,**b})
4.如何使用生成式的方式生成一个字典,写一段功能代码。
答:
# 需求 3: 把字典的 key 和 value 值调换; d = {'a':'1', 'b':'2'} print({v:k for k,v in d.items()})
5.如何把元组 ("a","b") 和元组 (1,2),变为字典 {"a":1,"b":2}
答 :
zip 的使用,但是最后记得把 zip 对象再转换为字典。
a = ("a", "b") b = (1, 2) print(dict(zip(a, b)))
数据类型 - 综合
1.下列字典对象键类型不正确的是?
A:{1:0,2:0,3:0}
B:{"a":0, "b":0, "c":0}
C: {(1,2):0, (2,3):0}
D: {[1,2]:0, [2,3]:0}
答:
D 因为只有可 hash 的对象才能做字典的键,列表是可变类型不是可 hash 对象,所以不能用列表做为字典的键。
2.如何交换字典 {"A":1,"B":2}的键和值
答:
s = {"A":1,"B":2} #方法一: dict_new = {value:key for key,value in s.items()} # 方法二: new_s= dict(zip(s.values(),s.keys()))
3.Python 里面如何实现 tuple 和 list 的转换?
答:
Python 中的类型转换,一般通过类型强转即可完成 tuple 转 list 是 list() 方法 list 转 tuple 使用 tuple() 方法
4.我们知道对于列表可以使用切片操作进行部分元素的选择,那么如何对生成器类型的对象实现相同的功能呢?
答:
这个题目考察了 Python 标准库的 itertools 模快的掌握情况,该模块提供了操作生成器的一些方法。 对于生成器类型我们使用 islice 方法来实现切片的功能。例子如下
from itertools import islice gen = iter(range(10)) #iter()函数用来生成迭代器 #第一个参数是迭代器,第二个参数起始索引,第三个参数结束索引,不支持负数索引 for i in islice(gen,0,4): print(i)
5.请将 [i for i in range(3)] 改成生成器
答:通过把列表生产式的中括号,改为小括号我们就实现了生产器的功能即,
(i for i in range(3))
6.a="hello" 和 b="你好" 编码成 bytes 类型
答:
这个题目一共三种方式,第一种是在字符串的前面加一个 b,第二种可以使用 bytes 方法,第三种使用字符串 encode 方法。具体代码如下,abc 代表三种情况
a = b"hello" b = bytes("你好", "utf-8") c = "你好".encode("utf-8") print(a, b, c)
7.下面的代码输出结果是什么?
a = (1,2,3,[4,5,6,7],8) a[2] = 2
答:
我们知道元组里的元素是不能改变的所以这个题目的答案是出现异常。
8.下面的代码输出的结果是什么?
a = (1,2,3,[4,5,6,7],8) a[3][0] = 2
答:
前面我说了元组的里元素是不能改变的,这句话严格来说是不准确的,如果元组里面元素本身就是可变类型,比如列表,那么在操作这个元素里的对象时,其内存地址也是不变的。a[3] 对应的元素是列表,然后对列表第一个元素赋值,所以最后的结果是:
(1,2,3,[2,5,6,7],8)
相关文章
- 这篇文章主要介绍了两道阿里python面试题与参考答案,结合具体实例形式分析了Python数组创建、遍历、拆分及随机数等相关操作技巧,需要的朋友可以参考下2019-09-02
- 这篇文章主要介绍了60道硬核Python面试题,论面霸是如何炼成的,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-08-28
- 这篇文章主要介绍了关于Python爬虫面试170道题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-08-15
- Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中最常见的50个问题。每道题都提供参考答案,感兴趣的可以了解下2019-06-26
- 这篇文章主要为大家介绍了Python常见的面试题与相应的Python知识点,包括Python变量、函数、对象、数据类型等,需要的朋友可以参考下2019-06-25
- 这篇文章主要介绍了110道Python面试题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-06-24
- 这篇文章主要介绍了春招面试,看这110道Python面试题就够了,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-04-15
- 这篇文章主要介绍了大数据相关常见面试题与答案,总结分析了大数据相关的概念、技术、原理,需要的朋友可以参考下2019-10-21
- 这篇文章主要介绍了数据挖掘常见面试题与参考答案,简单分析了数据挖掘面试中比较常见的概念、知识点与解答技巧,需要的朋友可以参考下2019-10-17
- 这篇文章主要介绍了大数据spark精华面试题与参考答案,整理总结了大数据spark面试中经常遇到的各类问题、概念与知识点,需要的朋友可以参考下2019-10-15
最新评论