Python小白零基础入门 —— 列表和元组
这是Python零基础入门的第二篇文章,这篇文章给大家介绍列表和元组都是什么,以及相关的常见操作。
列表
-
列表是什么?
在接触一个新的事物之前,我习惯先大概了解这个东西是什么,这个东西有什么用。在我的理解中,列表就是一个数据容器,用途自然就是存储各种各样的数据,例如上一篇文章中介绍的数值型、布尔型以及浮点型数据。
在Python中,用方括号[]来表示列表,并用逗号来分割其中的元素。
#列表中的数据可以是相同类型的numbers = [1, 2, 3, 4, 6] #全为数字bools = [True, False, False, True, True] #全为布尔值strings = [\'A\', \'B\', \'C\', \'D\'] #全为字符串lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] #全为列表#列表中的数据也可以是不同类型的mix_list = [1, \'A\', False, True, \'B\', 2]
-
列表常见的操作
- 访问列表元素及切片
假设我有一个列表如下,里面按顺序存储了今天晚上6点前在便利店消费过的所有顾客的姓名
consumers = [\'张三\', \'李四\', \'王五\', \'老王\', \'小明\']
如果想提取出第一位顾客(或第三位、最后一位),需要用到列表的索引,这和上一篇文章中讲到的字符串的索引原理是一模一样的,直接来看代码。
In [1]: consumers = [\'张三\', \'李四\', \'王五\', \'老王\', \'小明\']#提取出第一位顾客(索引从0开始)In [2]: consumers[0]Out[2]: \'张三\'#提取第三位顾客In [3]: consumers[2]Out[3]: \'王五\'#提取最后一位顾客In [4]: consumers[-1]Out[4]: \'小明\'
当然,也可以提取出前三位顾客或每隔两位顾客取一个
#consumers = [\'张三\', \'李四\', \'王五\', \'老王\', \'小明\']#提取出前三位顾客In [5]: consumers[:3]Out[5]: [\'张三\', \'李四\', \'王五\']#每隔两位顾客取一个In [6]: consumers[::2]Out[6]: [\'张三\', \'王五\', \'小明\']
如果你掌握了上篇文章中字符串的索引和切片操作,那么这些应该是很容易就理解了的。
2.修改元素
如果由于人为因素,将小白错认成了小明,那如何将顾客列表中的\'小明\'修改成\'小白\'呢?修改列表元素的语法与访问列表元素的语法类似:#consumers = [\'张三\', \'李四\', \'王五\', \'老王\', \'小明\']#小明是列表中的最后一个元素#先定位到小明所在的索引位置-1#再指定该位置的新值In [10]: consumers[-1] = \'小白\'In [11]: consumersOut[11]: [\'张三\', \'李四\', \'王五\', \'老王\', \'小白\']
- 添加元素
之后又有顾客进行了消费,那么就需要把新消费的顾客添加进列表(暂时不考虑重复购买的情况),需要使用append()往列表尾部添加元素
# consumers = [\'张三\', \'李四\', \'王五\', \'老王\', \'小白\']# append()往列表尾部添加元素In [12]: consumers.append(\'大白\')In [13]: consumersOut[13]: [\'张三\', \'李四\', \'王五\', \'老王\', \'小白\', \'大白\']
如果你想把新值插入到指定的位置,也是可以实现的,此时需要用到insert()方法
In [14]: consumers = [\'张三\', \'李四\', \'王五\', \'老王\', \'小白\']#往索引为0也就是列表首位插入新元素In [15]: consumers.insert(0,\'大白\')#插入新元素之后,其他元素往后移一位In [16]: consumersOut[16]: [\'大白\', \'张三\', \'李四\', \'王五\', \'老王\', \'小白\']
4.删除元素
如果由于错误记录或者重复记录,我们想删除列表中的元素,有以下三种方法可以实现:
① del list[index]
适用场景:已知索引位置进行删除
In [17]: consumers = [\'张三\', \'李四\', \'王五\', \'老王\', \'小白\']#删掉\'小白\'In [18]: del consumers[-1]In [19]: consumersOut[19]: [\'张三\', \'李四\', \'王五\', \'老王\']
② list.pop()
适用场景:要将一个元素从列表中删除,并且需要获取这个被删除的元素
In [20]: consumers = [\'张三\', \'李四\', \'王五\', \'老王\',2000\'小白\']# pop()默认删除列表的最后一个元素# 删除的同时会将这个值返回给你In [21]: consumers.pop()Out[21]: \'小白\'#删除后的列表In [22]: consumersOut[22]: [\'张三\', \'李四\', \'王五\', \'老王\']
当然你也可以利用pop()删除指定位置的元素,只需要指定元素的索引即可
In [23]: consumers = [\'张三\', \'李四\', \'王五\', \'老王\', \'小白\']#在列表中删掉\'老王这个记录\'In [24]: consumers.pop(3)Out[24]: \'老王\'In [25]: consumersOut[25]: [\'张三\', \'李四\', \'王五\', \'小白\']
③ list.remove()
适用场景:不知道要删除的值的索引,但知道要删除的元素的值
In [28]: consumers = [\'张三\', \'李四\', \'王五\', \'老王\', \'小白\']#删除列表中的\'张三\'In [29]: consumers.remove(\'张三\')In [30]: consumersOut[30]: [\'李四\', \'王五\', \'老王\', \'小白\']
- 反转列表的值
如果我们想按照由近及远的时间顺序查看消费的顾客,可以使用reverse()方法:
In [31]: consumers = [\'张三\', \'李四\', \'王五\', \'老王\', \'小白\']In [32]: consumers.reverse()In [33]: consumersOut[33]: [\'小白\', \'老王\', \'王五\', \'李四\', \'张三\']
- 查看列表的长度
当一天结束后,我们想查看一天下来有多少顾客进行了消费,可以使用len()来查看列表中有多少个元素。
In [34]: consumers = [\'张三\', \'李四\', \'王五\', \'老王\', \'小白\']In [35]: len(consumers)Out[35]: 5
对于列表的基本操作就介绍到这里,下面给大家介绍另外一个常用的数据容器——元组。
元组
相信经过上面的介绍,大家会感觉到列表的操作很灵活,可以进行任意的增删改操作。元组虽说也是一个数据容器,但是对一个元组而言,只要定义好一个元组后,这个元组是不可变的,不能进行任何的增删改操作,因而也被称之为不可变的列表。
例如,如果有一个长度和宽度都固定的矩形,那么就可以将矩形的长度和宽度存储在一个元组中,确保它不被修改。
-
元组的定义
元组是用圆括号()来定义的(区别于列表的方括号[])
* # 定义一个元组In [42]: tuple = (500,200)In [43]: tupleOut[43]: (500, 200)
-
访问元组元素
访问元组中元素的操作和列表的完全一样,如下:
In [42]: tuple = (500,200)In [44]: tuple[0]Out[44]: 500In [45]: tuple[1]Out[45]: 200In [46]: tuple[-1]Out[46]: 200
但如果你想修改元组中的值时,Python会报错
In [47]: tuple[0] = 200---------------------------------------------------------------------------TypeError Traceback (most recent call last)<ipython-input-47-f715faf570e9> in <module>----> 1 tuple[0] = 200TypeError: \'tuple\' object does not support item assignment
练习题
1.生成一个空列表,将你最喜欢的5个女明星添加到列表中
2.在上面的列表中,将列表中第三个女明星替换成你最喜欢的男明星
3.去掉在列表中你相对最不喜欢的女明星(指定索引的方式和指定元素的方式)
4.用两种方式将列表进行反转
5..查看现在你的列表中有几个明星
猜您喜欢
往期精选▼
- Python小白零基础入门 —— 变量及简单的数据类型
- 超级菜鸟怎么入门数据分析?
关注我们
1529321439513643.jpg
公众号:Python读数
一个记录成长的公众号
原创不易,如果觉得有点用,希望可以随手转发或者 ”在看“ ,拜谢各位老铁!