💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 什么是容器 上章我们学习了数字和字符串。这两种数据是是不可拆分的“原子元素”(严格来说我字符串是可以再拆分成字符的,但是这个可以忽略)。 我们生活中还有另外一大类型的数据,**容器**:**由多个元素组成的一个中数据**。我们来看看生活中哪些数据是**容器**。*一斤苹果*、*一套画册*、*一群小鸟*。*斤、套、群*这些都是形容一组数据的介词。都有*一堆*的意思。这些就是容器。 ![](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方法对列表里的元素排序,默认按照从小到大的顺序排序。 ## 总结 这节课的知识点有点多,我们在掌握的时候,首先要理解什么是列表,对列表能做哪些操作。语法我们可以慢慢记忆。下节课,我们用列表来做一个项目实例,让大家有个感性的认识。