## 什么是容器
上章我们学习了数字和字符串。这两种数据是是不可拆分的“原子元素”(严格来说我字符串是可以再拆分成字符的,但是这个可以忽略)。
我们生活中还有另外一大类型的数据,**容器**:**由多个元素组成的一个中数据**。我们来看看生活中哪些数据是**容器**。*一斤苹果*、*一套画册*、*一群小鸟*。*斤、套、群*这些都是形容一组数据的介词。都有*一堆*的意思。这些就是容器。
![](https://cdn1.iconfinder.com/data/icons/logistics-cartoon/512/sim3371-512.png)
在游戏中就有更多容器的例子啦。游戏主角身上穿的装备列表、游戏征途中的所有怪物,这些都是容器。
## 容器的作用
要是世界上只有我们一个人,得是多么的孤单。所以世界上的很多东西都是可以“类聚群分”的。通过容器的方式,能够让我们统筹全局,站在更高的视角上分析问题。
接下来,我们就学习下容器在python里的表达。
## 什么是列表
列表就是我们最常见的容器的了,我们可以用**由一组元素组成的数据叫容器**来定义它。
我们前面提到的*一斤苹果*、*一套画册*都是容器。下面,我们就拿*一套画册*来举例子,看我们对这种容器的数据做哪些操作。
![](https://banner2.kisspng.com/20180313/avq/kisspng-bookcase-table-shelf-furniture-cartoon-books-5aa7db55530741.6141383915209501013401.jpg)
## 对列表能做哪些操作
* 数画册里共有多少本漫画
* 往画册里加一本漫画
* 把画册的第一本书换为*七龙珠*
* 从画册里去掉一本漫画
* 取这个画册里的第二本漫画
* 取这个画册里的第二到第四本漫画
* 判断*海贼王*是否在这套画册里
* 把这个画册按照漫画的名字排序
是不是发现,只要套用生活中的例子,理解编程概念是很简单的。编程就是处理数据的,我们平时怎么处理数据,编程就能怎么处理数据(当然以后会有更高级的处理方式)。
## 在python中定义列表
上面我们认识了什么是列表,接下来我们就看看怎么在python里定义个列表吧。
```
a = [1,3,5,7,9]
hero = ['阿珂','韩信','李白']
book_list = ['海贼王','叮当猫','老夫子']
```
在第一行中,``[1, 3, 5, 7, 9]`` 就是一个小于10的奇数容器。定义一个列表,我们只需要用中括号把我们的元素包起来、每个元素用逗号隔开即可。第一行的整体意思是,我们定义一个变量a,并用赋值语句把**由 1、3、5、7、9 5个元素组成的**赋值给变量a,其中:1,3,5,6,7,9是我们上章节学习的数字。
在第二行中,`` ['阿珂','韩信','李白']`` 是由 阿珂、韩信、李白三个游戏角色组成的列表,我们把这个列表通过赋值语句给到了hero这个变量。其中,'阿珂','韩信','李白'使我们上个章节学习的字符串。
第三行, `` ['海贼王','叮当猫','老夫子']`` 是由 海贼王、叮当猫、老夫子三本漫画组成的列表,我们把这个列表给到了变量:``book_list``
## 在python中操作列表
接下来,我们就看一下在python中怎么对列表变量 ``book_list`` 做我们前文提到的那些操作。
```
book_list = ['海贼王','叮当猫','老夫子']
len(book_list)
book_list.append('西游记')
book_list[1]
book_list[0] = '七龙珠'
book_list[1:3]
book_list.remove('叮当猫')
'海贼王' in book_list
book_list.sort()
print(book_list)
```
* **获取列表长度** 数画册里共有多少本漫画
`len(book_list)` 中的 len()方法,和字符串里的取字符串的长度是一样的
* **往列表里增加元素** 往画册里加一本漫画
`book_list.append('西游记')` `append()`方法,append是追加的意思,往列表里追加一个元素
* **获取列表元素** 取这个画册里的第二本漫画
`book_list[1]` 我们使用`[ 1]` 的方式去列表里某个位置的元素,注意,还是从0开始取的
* **更改列表里某个位置的值** 把画册的第一本书换为*七龙珠*
`book_list[0] = '七龙珠'` 直接用赋值表达式来改变列表某个位置下的值。
* **获取多个元素** 取这个画册里的第二到第四本漫画
`book_list[1:3]` 取列表里的多个元素直接用`[1:3]`就可以了,和字符串里的取字符串方法一样。
* **删除元素**从画册里去掉一本漫画
`book_list.remove('叮当猫')` 使用 remove方法删除列表里的某个元素
* **判断列表是否包含某个元素** 判断*海贼王*是否在这套画册里
`'海贼王' in book_list` 使用 `... in ...` 方法。in 左侧是元素,in右侧是列表。
* **列表排序** 把这个画册按照漫画的名字排序
`book_list.sort()` 使用 sort方法对列表里的元素排序,默认按照从小到大的顺序排序。
## 总结
这节课的知识点有点多,我们在掌握的时候,首先要理解什么是列表,对列表能做哪些操作。语法我们可以慢慢记忆。下节课,我们用列表来做一个项目实例,让大家有个感性的认识。
- 课程介绍
- 搭建环境
- 什么是计算机
- 程序是怎么运行的
- 安装python
- 项目实例-安装IDE
- 变量和简单数据类型
- 数据&变量
- 数字
- 字符串
- 布尔类型
- 项目实例
- 容器-列表
- 容器
- 列表
- 项目实例
- 容器-字典
- 定义字典
- 项目实例
- 数据类型总结
- 条件语句
- python条件语句
- 项目实例
- 循环语句
- for循环
- while循环
- 项目实例
- 函数
- 5.0函数定义
- 5.2函数实战
- 6.文件系统
- 6.1 文件系统介绍&python查找文件
- 6.2 用python读写文件
- 7. python操作时间
- 8.面向对象
- 8.1 类和对象
- 8.2 继承和重写
- 8.3 面向对象项目实战
- 9 GUI编程
- 9.1 GUI基础
- 9.2 备忘清单GUI版
- 10.网络
- 10.1 网络的发展
- 10.2 python http
- 11.web开发
- 11.1 web基础&HTML
- 11.2 CSS&JavaScript
- 11.3 网页计算器
- 11.3 网站开发实战-播客搭建
- 11.3 python-web
- 12. 项目实战-数据处理
- 13. 项目实战-AI入门
- 13.1 环境搭建
- 心得
- 13.2 Tensorflow的瓜怎么吃
- 14 pygame
- 14.1 pygame Helloworld
- 14.4 pygame 动画基础 Animation
- 从0开始学python第14.5节 pygame 加载图片和声音
- 从0开始学python第14.6节 pygame.sprite(上)
- 14.7 pygame.sprite模块(下)
- 14.8 pygame射击游戏(一)
- pygame射击游戏(二)
- 14.8 pygame射击游戏(三)
- 14.8 pygame射击游戏(四)
- 14.8 pygame射击游戏(五)