- 列表
我们常常做各种列表,神马购物清单啊,选课表啊等等。在Python中,我们可以把各种类型的数据(包括列表本身)有序地排列在一起,形成一个列表(list)。列表的表示方法是,在中括号内,把不同的元素用逗号隔开:
>>> [True, 1, 2.3, 'haha', 'haha', [7,8]] [True, 1, 2.3, 'haha', 'haha', [7, 8]]
我们看到,在这个列表中,既有布尔值,还有整数、浮点数、字符串和另一个列表,并且,列表中可以有重复的元素出现。另外,列表可以是空的:[]。
- 基础列表操作方法
列表有一些操作方法和前面讲的字符串是共通的,例如索引(记得索引是从0开始,不是1):
>>> [True, 1, 2.3, 'haha', 'haha', [7, 8]][0] True >>> [True, 1, 2.3, 'haha', 'haha', [7, 8]][5] [7, 8]
列表长度(列表中的元素个数):
>>> len([True, 1, 2.3, 'haha', 'haha', [7, 8]]) 6
加法与乘法:
>>> [1, 2] + [3] [1, 2, 3] >>> [1, 2] * 2 [1, 2, 1, 2]
针对元素都是数字的列表,我们还可以使用:
>>> min([1, 2.4, 3]) 1 >>> max([1, 2.4, 3]) 3 >>> sum([1, 2.4, 3]) 6.4
关于列表还有很多高级操作方法,我们以后会接触。
- 元组
在Python中,有一种和列表很相像的元素类型,称为元组(Tuple)。它也是将各种数据有序排列在一起,在小括号内,各元素用逗号隔开:
>>> (1, 2, 2, True) (1, 2, 2, True)
元组也可以是空的:();要注意,如果定义只有一个元素的列表,我们可以写[1],但定义只有一个元素的元组,我们必须在这个元素后面加一个逗号:(1,),否则Python将把(1)识别为整数1。
元组支持我们上述的所有基础列表操作方法。那么你肯定就要问了,那么这二者有什么区别呢?区别在于,列表是可变对象,然鹅元组是不可变对象。
- 初识可变对象与不可变对象
这是Python学习中比较难理解的一个问题(至少对我来说- -)。随着Python知识学习的越多,能理解的越到位。我在这个教程中准备把它分为几个阶段讲,现在这个阶段,我们先有个印象。
当你在Python里创建一个数据的时候,实际上Python是在计算机内存里面取了一小块,创建了这个数据。对于不可变对象来说,想要改变它,Python只能在内存别的地方再取一小块,按修改要求创建一个新的数据给你,没办法直接修改原先创建的那个数据。也就是说,改完以后,最开始创建的那个还在,还是没有改过的状态。我们讲的字符串、元组就是这一类型。
当然还有一类数据,Python可以直接按照你的要求,在原始创建数据时取得的那块内存上直接修改,这就是可变对象。我们讲的列表就是这一类型。
例如你有一个萝卜,你挖了个坑种下去,突然发现哎哟我想要西瓜!那你只能新挖一个坑种一个西瓜,原来的萝卜还在那里——这叫做不可变对象。有一天你从霍格沃兹毕业回来,对着萝卜一声大喝,吓得它直接变成了花生,坑还是萝卜坑但是萝卜变成了花生——这叫做可变对象。
- 本节练习
创建一个Python列表,列表中应有三个元素,分别是三种动物名称。并说出各动物名称对应的列表索引号。
看答案
>>> ['狒狒', 'cat', 'いぬ'] ['狒狒', 'cat', 'いぬ']
狒狒:0
cat:1
いぬ:2
酱哦
用索引的方式看看列表[‘hello’, ‘from’, ‘the’, ‘other’, ‘side’]中第二个元素中的第一个字符是什么。
看答案
>>> ['hello', 'from', 'the', 'other', 'side'][1][0] 'f'
酱哦
如果还有什么问题或者发现了文章的错误,欢迎给我留言!邮箱可以随便乱写~