黑马程序员|8天Python第6章数据容器

一 数据容器入门

1.为什么学习数据容器

为了批量存储或批量使用多份数据。

2.什么是数据容器

生活中的容器:水杯,碗,盘子。

碗可以放盘子里,嵌套。



二 数据容器:list(列表)

1.为什么需要列表

2.列表的定义


3.列表的下标索引

什么是列表的下标索引

如何通过下标索引取出对应位置的元素  

列表[下标]

 

注意

下标索引的取值范围,超出范围无法取出元素,并且会报错。 


4.列表的常用操作

什么是方法

列表的方法

列表的查询功能(方法)

可以当作是index函数,方法和函数的功能是一样的。index严格来说是方法。

如有重复,则会返回其中第一个。 

嵌套列表可以查只要把嵌套的列表中的列表下标标上就行list[7].index(5)。

列表的修改功能(方法)

append追加的列表则作为一个元素。

append追加一个,extend追加 一批。

extend(5,6,7)错

extend([5,6,7])对

可以通过变量去接收删除的元素。

pop本质功能是把指定下标的元素取出来,然后返回出去。可以得到返回值,同时这个元素也从列表中移除了。

del是类似于if、break、import一样的“语句”,语句是一段可执行代码,不是函数(函数是对代码的封装)。del不是函数。其他前面的方法返回值都是None。

列表的查询功能(方法) 

特点

上限:8个字节。 

注意点

5.list(列表)的遍历

什么是遍历

将容器内的元素依次取出,并处理,称之为遍历操作。

使用 while 循环,遍历列表的元素


使用 for 循环,遍历列表的元素

while 循环和 for 循环的对比

 6.课程练习

总结:



二 数据容器: tuple( 元组 )

1.为什么需要元组

2.元组的定义

定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。 

 
3.元组的操作

其他都不能用。比如append,extend。 

4.注意

list没变,变的是list里面的内容。

因为元组里面的列表元素指向的是内存地址,就算值改变了内存地址也不变。 

5.元组的遍历

6.元组的特点

7.课堂练习


三 数据容器:str(字符串)

1.字符串是什么

是字符的容器。

2.字符串的操作

.strip是前后空格和换行符 \n 都被去掉。 

可以理解为有2个def strip,一个有参数版本,一个没有参数的版本。 

传入的是12,但不是按照12这个组合来去除,而是分成1和2,只要满足一个就去掉。

注意是前后不包括中间。

注意:空格也算一个字符。

 3.字符串的遍历

4.字符串的特点

5.课堂练习

 上述代码是因为 end2 = a.split("|") 错误,因为使用replace方法后会生成一个新的字符串,而不是覆盖原来的字符串,所以应该是 end2 = end.split("|")。


四 数据容器的切片

1.什么是序列

内容连续、有序,支持下标索引的一类数据容器。

2.序列的切片操作

联想:range() 

因为元组和字符串都不支持修改,所以只能得到一个新的序列。 

倒序+切片:


五 数据容器:set(集合)

1.为什么使用集合

2.集合的定义

并且乱序。

序列不包括集合。 

3.集合的常用操作

实际测试发现全数字集合有规律,会一直取最小的数字,全字符串集合是随机的。 

4.集合的遍历

5.集合的特点

6.课堂练习

定义空集合时只能my_set = set()。不能 my_set = { }。会报错。因为 { } 是空字典的定义。


六 数据容器: dict(字典、映射)

1.为什么使用字典

字典可以提供基于 Key 检索 Value 的场景实现就像查字典一样。

2.字典的定义

3.字典的嵌套

4.字典数据的获取

5.字典的常用操作

key 不存在就是新增,存在就是更新。 

通过pop可以取到value,同时key 和value 被删除。 

拿到全部的key,就可以for循环把所有key挨个拿过来用,依次取key就可以依次取对应的value 。

如果 for key in stu_score: 那么每次循环取出的元素就是字典的key。

6.注意

生活中字典里面也没有重复的字,所以程序中key也不能重复。 

 7.字典的特点

 8.课堂练习

practice = {"王力鸿":{"部门":"科技部",
                      "工资":3000,
                      "级别":1},
            "周杰轮":{"部门":"市场部",
                      "工资":5000,
                      "级别":2},
            "林俊节": {"部门": "市场部",
                       "工资": 7000,
                       "级别": 3},
            "张学油": {"部门": "科技部",
                       "工资": 4000,
                       "级别": 1},
            "刘德滑": {"部门": "市场部",
                       "工资": 6000,
                       "级别": 2}}
print(f"全体员工当前信息如下:\n{practice}")

for name in practice: #拿到全部的key(姓名)
    if practice[name]["级别"] == 1:
        practice[name]["级别"] = 2
        practice[name]["工资"] += 1000
    else:
        continue

print(f"全体员工级别为1的员工完成升职加薪操作,操作后:\n{practice}")


七 数据容器的通用操作

1.数据容器的分类

2.数据容器特点对比

3.数据容器的应用场景

4.数据容器的通用操作

遍历

统计

字典是按照key去比较的,不是按照value。 

转换

转元组和集合也是一样,只是变成() 和  { } ,但是转集合的时候会无序并且去重。

只是看起来是这样,但是实际上是类似于print("[1,2,3,4,5]" )

无法转成字典,因为没有键值对。

排序

 默认是reverse = False

如果想让容器的排序结果反转,传递True。(从大到小)

[ ] 是可选的意思。

排序后是列表对象,对内容进行排序再放入列表中。 

反转:



八 字符串的大小比较

1.字符串如何比较

从头到尾,一位位进行比较,其中一位大,后面就无需比较了。

2.单个字符之间如何确定大小?

通过 ASCI 码表,确定字符对应的码值数字来确定大小

97 65 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值