Python面试题41-48数据类型 - 综合

参考自:https://cloud.tencent.com/developer/article/1490616(题目来源)
部分答案来源:
https://blog.csdn.net/weixin_46348799/article/details/108927401

所有题目

数据类型-综合

41.Python 常用的数据结构的类型及其特性?

**数值数据类型**

整数类型(int)
布尔类型(bool)
浮点类型(float)
复数类型(complex)
**可变数据类型(列表、字典、可变集合)**

直接对数据结构对象的内容进行修改
只对同一个对象进行操作

**不可变数据类型(数字、字符串、元组、不可变集合)**

不能对数据结构对象的内容进行修改操作
新旧对象两者引用两个不同的id地址值

具体参考:https://www.cnblogs.com/jingxuan-li/p/9950986.html

42.如何交换字典 {“A”:1,“B”:2}的键和值

s =  {"A"1,"B"2}1:
new_s={value:key for key,value in s.items()}2:
new_s2= dict(zip(s.values(),s.keys()))

43.Python 里面如何实现 tuple 和 list 的转换?

list()#将tuple转换为list
tuple()#将list转换为tuple

44.我们知道对于列表可以使用切片操作进行部分元素的选择,那么如何对生成器类型的对象实现相同的功能呢?

使用Python 标准库的 itertools 模快,该模块提供了操作生成器的一些方法。 对于生成器类型我们使用 islice 方法来实现切片的功能。
from itertools import islice
gen = iter(range(10)) #iter()函数用来生成迭代器
#第一个参数是迭代器,第二个参数起始索引,第三个参数结束索引,不支持负数索引
for i in islice(gen,0,5)print(i)
0
1
2
3
4

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

(i for i in range(3))
#生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
#迭代器是一个可以记住遍历的位置的对象。
#迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

46.a="hello"和 b="你好"编码成 bytes 类型

a = b"hello" #字符串前加个b表示转换为bytes类型
b = bytes("你好", "utf-8")#或者使用bytes函数
c = "你好".encode("utf-8")#使用encode转码
print(a, b, c)

47.下面的代码输出结果是什么?

a = (1,2,3,[4,5,6,7],8)
a[2] = 2
TypeError: 'tuple' object does not support item assignment
#元组里的元素(针对不可变类型)是不能改变的(与48题对比来看)

48.下面的代码输出的结果是什么?

a = (1,2,3,[4,5,6,7],8)
a[3][0] = 2
#结果:
(1,2,3,[2,5,6,7],8)
#如果元组里面元素本身就是可变类型,比如列表,那么在操作这个元素里的对象时,其内存地址也是不变的。
#a[3] 对应的元素是列表,然后对列表第一个元素赋值,所以最后的结果是: (1,2,3,[2,5,6,7],8)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值