每天5分钟玩转Python(06) - 基本数据类型(中)
继续上一篇的数据结构讲解,这篇讲解列表List(列表)和Tuple(元组)的使用方法。
List(列表)
列表应该是Python中使用最频繁的数据类型了。列表可以完成大多数集合类的数据结构实现。
列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号 []
之间、用逗号分隔开的元素列表。
1 | list1 = ['abcd', 123, 3.14, 'test', True, 70.2 + 3.2j] |
索引访问
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。 要访问列表元素,可指出列表的名称,再指出元素的索引,注意索引从0开始,并将其放在方括号内。
1 | print(list1[2]) # 将打印3.14 |
列表是可变数据类型,所以还能添加、修改和删除元素。
修改元素
修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要修改 的元素的索引,再指定该元素的新值。 例如,假设有一个摩托车列表,其中的第一个元素为’honda’,如何修改它的值呢?
1 | motorcycles = ['honda', 'yamaha', 'suzuki'] |
添加元素
Python提供了多种在既有列表中添加新数据的方式
1、在列表末尾添加元素
方法append()可以将元素添加到列表末尾,而不会影响列表中其他元素
1 | motorcycles = ['honda', 'yamaha', 'suzuki'] |
2、在列表中插入元素
使用方法insert()可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。
1 | motorcycles = ['honda', 'yamaha', 'suzuki'] |
会在索引为1的地方插入元素’ducati’,最后的列表如下
1 | ['honda', 'ducati', 'yamaha', 'suzuki'] |
删除元素
删除列表元素有两种方式,你可以根据位置或值来删除列表中的元素。
如果知道要删除的元素在列表中的位置,可使用del语句。
1 | motorcycles = ['honda', 'yamaha', 'suzuki'] |
如果你想删除列表末尾的元素,并且还想使用被删除的元素,可以使用pop()
方法。
学过数据结构的同学应该都知道,这个时候列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。
1 | motorcycles = ['honda', 'yamaha', 'suzuki'] |
实际上,你可以使用pop()来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。
1 | motorcycles = ['honda', 'yamaha', 'suzuki'] |
有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可使用方法remove()。
1 | motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati'] |
列表截取
这个跟字符串类似,你可以只截取列表的一部分来访问。列表截取的语法格式如下:
1 | 变量[开始下标:结束下标] |
注意,截取的范围包含开始下标,但是不包含结束下标。索引值以 0 为开始值,-1 为从末尾的开始位置。 如果不填写开始下标则表示从最开始截取,如果不填写结束下标则表示截取到最后。
1 | list = ['abcd', 123, 3.14, 'test', True, 70.2 + 3.2j] |
Python 列表截取可以接收第三个参数,参数作用是截取的步长, 以下实例在索引1到索引4的位置并设置为步长为 2(间隔一个位置)来截取字符串:
如果第三个参数为负数表示逆向读取,以下实例用于翻转字符串:
1 | def reverseWords(input): |
Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。 元组中的元素类型也可以不相同。
1 | tuple1 = ('abcd', 123, 3.14, 'test', True, 70.2 + 3.2j) |
元组与列表类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取, 跟上面讲的规则一样这里就不重复说了。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
1 | tup1 = () # 空元组 |
由于元组是不可变对象,那么就只有访问元素和截断操作了。不能对元组进行添加、更新、删除的操作。
好啦,列表和元组基本用法介绍完了。喝杯可乐歇会吧。