aspnet网站开发实例项目,网站建设的基本内容,北京网站开发哪好,网页设计与制作1. Python 里面如何实现 tuple 和 list 的转换#xff1f;
答#xff1a; Python 中的类型转换#xff0c;一般通过类型强转即可完成 tuple 转 list 使用 list() 方法 list 转 tuple 使用 tuple() 方法
2. 我们知道对于列表可以使用切片操作进行部分元素的选择#xff0c…1. Python 里面如何实现 tuple 和 list 的转换
答 Python 中的类型转换一般通过类型强转即可完成 tuple 转 list 使用 list() 方法 list 转 tuple 使用 tuple() 方法
2. 我们知道对于列表可以使用切片操作进行部分元素的选择那么如何对生成器类型的对象实现相同的功能呢
答 这个题目考察了 Python 标准库的 itertools 模快的掌握情况该模块提供了操作生成器的一些方法。 对于生成器类型我们使用 islice 方法来实现切片的功能。例子如下
from itertools import islice
gen iter(range(10))
#iter()函数用来生成迭代器,
# 第一个参数是迭代器第二个参数起始索引第三个参数结束索引不支持负数索引
for i in islice(gen,0,4):print(gen)print(i)运行结果
range_iterator object at 0x00000000021484F0
0
range_iterator object at 0x00000000021484F0
1
range_iterator object at 0x00000000021484F0
2
range_iterator object at 0x00000000021484F0
3相关链接
3. 请将 [i for i in range(3)] 改成生成器
答 通过把列表生产式的中括号改为小括号我们就实现了生产器的功能即
a (i for i in range(3))
print(a)运行结果
generator object genexpr at 0x00000184F7962ED0关于生成器的详细资料请参考博客生成器
4. a“hello” 和 b“你好” 编码成 bytes 类型
答 这个题目一共三种方式第一种是在字符串的前面加一个 b第二种可以使用 bytes 方法第三种使用字符串 encode 方法。具体代码如下abc 代表三种情况
a bhello
b bytes(你好, utf-8)
c 你好.encode(utf-8)
print(a, b, c)运行结果
bhello b\xe4\xbd\xa0\xe5\xa5\xbd b\xe4\xbd\xa0\xe5\xa5\xbd5. 下面的代码输出结果是什么
a (1,2,3,[4,5,6,7],8) a[2] 2 答 我们知道元组里的元素是不能改变的所以这个题目的答案是出现异常。
6. 下面的代码输出的结果是什么?
a (1,2,3,[4,5,6,7],8) a[3][0] 2 答元组的里元素是不能改变的这句话严格来说是不准确的如果元组里面元素本身就是可变类型比如列表那么在操作这个元素里的对象时其内存地址也是不变的。a[3] 对应的元素是列表然后对列表第一个元素赋值所以最后的结果是 (1,2,3,[2,5,6,7],8)
7. response.text和response.content的区别
response.content这个是直接从网络上面抓取的数据。没有经过任何解码。所以是一个bytes类型。其实在硬盘上和在网络上传输的字符串都是bytes类型。response.text这个是str的数据类型是requests库将response.content进行解码的字符串。解码需要指定一个编码方式requests会根据自己的猜测来判断编码的方式。所以有时候可能会猜测错误就会导致解码产生乱码。这时候就应该使用response.content.decode(utf-8)进行手动解码。