Python入门——序列(章节实操作业)

Python入门——序列(章节实操作业)

1.画出代码 a = [100,200,300] 的内存示意图

在这里插入图片描述


2.使用 range 生成序列:30,40,50,60,70,80

print([x for x in range(30, 90, 10)])  # [30, 40, 50, 60, 70, 80]

3.推导式生成列表:a = [x * 2 for x in range(100) if x % 9 ==0] 输出结果

# [0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]

4.使用二维列表存储表格信息,并画出简单的内存示意图

姓名年龄薪资城市
高小一1830000北京
高小二1920000上海
高小五2010000深圳
a = ["高小一", 18, 30000, "北京"]
b = ["高小二", 18, 30000, "北京"]
c = ["高小五", 18, 30000, "北京"]
result_list = [a, b, c]
for result in result_list:
    print(result)

5.元组和列表有哪些共同点?有哪些不同点?

共同点:

​ 1.存储多个元素:元组和列表都可以存储多个元素,这些元素可以是不同类型的数据(如整数、浮点数、字符串、甚至是其他列表或元组)。

​ 2.索引和切片:两者都支持通过索引(indexing)和切片(slicing)来访问其元素。索引从0开始,可以使用负索引访问从末尾开始的元素。切片则允许你访问子序列。

​ 3.可迭代:元组和列表都是可迭代的,这意味着你可以使用for循环遍历它们。

​ 4.长度:都可以使用内置函数len()来获取它们的长度(即包含的元素数量)。

不同点:

​ 1.可变性:列表是可变的,可以在创建列表之后进行添加、删除和更新的操作

​ 元组是不可变的,意味着一旦创建就不能更改其中的元素。如果尝试更改,Python 会抛出 TypeError 异常

​ 2.语法:列表使用方括号 [] 定义,元组使用圆括号 () 定义

​ 3.性能:由于元组是不可变的,Python在内部可以对元组进行优化以提高效率,特别是在包含大量数据时。此外,因为元组是不可变的,所以它们可以用作字 典的键(keys)或集合(sets)的元素,而列表则不可以。

​ 列表因为支持动态更改,所以在性能上可能会略逊于元组,尤其是在进行大量元素更改操作时。


6.创建一个字典对象,包含如下信息:支出金额:300.15,支出日期:2018.10.18,支出人:高小七

message = {"支出金额": 300.15, "支出日期": "2024.09.08", "支出人": "高小七"}

7.使用字典存储行数据,最后将整个表使用列表存储起来。

姓名年龄薪资城市
高小一1830000北京
高小二1920000上海
高小五2010000深圳
a = {"姓名": "高小一", "年龄": 18, "薪资": 30000, "城市": "北京"}
b = {"姓名": "高小二", "年龄": 19, "薪资": 20000, "城市": "上海"}
c = {"姓名": "高小五", "年龄": 20, "薪资": 10000, "城市": "深圳"}
result_list = [a, b, c]
for result in result_list:
    print(result)
    # {'姓名': '高小一', '年龄': 18, '薪资': 30000, '城市': '北京'}
    # {'姓名': '高小二', '年龄': 19, '薪资': 20000, '城市': '上海'}
    # {'姓名': '高小五', '年龄': 20, '薪资': 10000, '城市': '深圳'}

8.用文字和自己画的示意图描述:字典存储一个键值对的底层过程

a = {"name": "CY"}
print(bin(hash("name"))[2:])  # 1001110011001100111111110000101011011010000100101000111100010

创建出来了一个字典,底层默认创建出长度为8的均匀的存储空间,其中每一个大小都相同,成为 bucket。计算 name 的哈希值(二进制),首先通过最右侧三位(010)十进制结果是2。我们查看偏移量2,对应的 bucket 是否为空,如果为空,则将键值对放进去。如果不为空,则会依次取右边三位偏移量,即: 001,十进制数字是4。在查看偏移量为4的 bucket 是否为空。直到找到为空的 bucket 把键值对放进去。
在这里插入图片描述

流程图:
​ 期间的自动扩容是大概在 2 / 3左右开始扩容 2 ^ n在这里插入图片描述


9.集合和字典有什么关系?

集合是一个无序的,元素不可重复的序列

字典存储的是键值对,字典中的每一个元素都是一个键值对,键不可以重复,但值无所谓。

中…(img-YrtTn1o4-1725731512651)]


9.集合和字典有什么关系?

集合是一个无序的,元素不可重复的序列

字典存储的是键值对,字典中的每一个元素都是一个键值对,键不可以重复,但值无所谓。

集合的底层就是字典实现的,集合中的所有元素就是字典的键对象

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凇:)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值