第三章节实操作业

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

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

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

 

 

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

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

一元组的定义

元组是存放一串信息的数据,能够存放不同的数据类型的数据,但是元组一经定义,是不允许修改元组内的数据的,只允许获取元组内的数据。

二元组出现的原因

我们看到,既然列表的功能已经这么强大了,那为什么还会有元组的出现呢?

因为列表在大多数的应用场景下,都是存储的相同类型的数据的;元组出现的原因是因为它在python中有特定的应用场景的。

其中特定的应用场景为:

1.元组作为函数的返回值和参数:由于元组中存放的数据在很多情况下是不止一个的,那么当元组作为一个函数的返回值和参数时,该函数就可以接收任意多个参数,同时可以返回任意多个数据

2.还有一个很重要的应用场景为:当我们需要某个列表的值是不允许被修改的时候,那么就可以将该该列表转换为元组的类型,从而避免了从修改的目的,并且达到了保护数据安全的目的

三元组的常用操作

1.取值操作:

(1)通过索引值找到该索引值所对应的数据 ,使用格式为 print(元组名[索引值])

(2)第二个是index方法,使用格式为:元组名.index(参数为想要在该元组中查找的值所对应的索引值index)

(即 已经知道数据的内容,想知道该数据在元组中的索引值,就用index方法)

2.统计操作

(1)第一个是count方法,使用格式为,元组名.count(参数是想要在元组中统计的值)

(2)还有一个是统计元组中包含的元素的个数的函数,len函数

使用格式为 len(元组名)

注意:该元组的常用操作,其实和列表中对数据的操作没什么差别

四元组和列表的相同点

1.元组和列表都是由多个元素组成的序列

2.元组和列表中的数据和数据之间使用,分隔的

3.元组和列表中都有索引,并且都是从0开始的

4.元组和列表中获取数据都是用到的是一对中括号[],并且中括号里面的内容是索引值

5.都可以用for关键字从头到尾进行循环遍历,从而输出该列表或元组的所有数据

6.元组和列表都是有序数据的集合

五元组和列表的不同:

1.元组的定义方式是通过()的形式来定义的,而列表的定义是通过[]来定义的

2.并且元组一经定义,是不允许修改元组内的数据的,只能获取元组内的数据;而列表定义之后可以对其进行增删改查的操作(其实列表和元组很多方面都是相似的,但是最大的不同就是这点)

3.在对列表的数据进行赋值时,如果只有一个数据,那么在[]内部是不用在该数据后面增加一个, 的

但是在对元组进行赋值时,如果只有一个数据,那么必须在该数据之后增加一个,

补充1:

为什么在对元组进行赋值时,如果只有一个数据,那么必须在该数据之后增加一个逗号呢?

原理是这样的:因为python解释器如果看到有一对小括号()是会将其自动忽略的,那么如果想要在元组中存储数据并且在这个时候没有加上末尾的一个逗号,这是我们用type()函数查看该数据的数据类型,发现我们通过()定义的这个数据并不是一个元组类型的,如果在()内部是一个整数,那么python的解释器就会将其解释为int的数据类型,而不是元组turple的数据类型;

为了避免这样的误会,我们就会在这个数据的后面加上一个,就可以防止上述的错误的出现啦

补充2:

列表和元组之间的类型是可以相互转换的

(1)将列表转换为元组可以用到turple函数

使用格式为 turple(列表的变量名),就可以将列表的类型转换为元组的类型啦~

(2)将元组转换为列~表可以用到list函数

使用格式为list(元组的变量名)就可以将元组这个类型转换为列表的类型啦~

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

 

 

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

>>> print(bin(hash("高小一")))

>>> -0b11101011110101011011001111001111110000010011100111111110111101

#1.先计算该字典对象的哈希值

#2.取哈希值右侧4位二进制得到索引值  1101=>13

判断bucket是否为空

是-----则储存键对到空的bucket

否-----则依次再取右边4位作为二进制数,得到新索引值,再判断bucket是否为空依次循环

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

实际上,集合底层是字典实现,集合的所有元素都是字典中的"键对象",因此是不能重复的且唯一的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值