Python列表_基础

一,列表也是序列

和字符串差不多,列表是一系列的数值的序列。在字符串里面,这些值是字符,在列表里面,这些值可以是任意类型的。一个列表中的值一般叫做列表的元素,有时候也叫列表项。

创建一个新的列表有好几种方法,最简单的方法就是把列表的元素用方括号包含起来:

>>> [10, 20, 30, 40]

[10, 20, 30, 40]

>>> ['jack', 'tom', 'marry']

['jack', 'tom', 'marry']

第一个例子建立了一个由四个整形变量组成的列表。第二个是一个由三个字符串组成的列表。

列表内部可以包含一个列表作为元素,这种包含列表的列表也叫做网状列表,比如:

>>> ['julen', 1.5, 30,[10, 20]]

['julen', 1.5, 30, [10, 20]]

不含有任何元素的列表叫做空列表,可以就用空的方括号来建立一个;另外,列表的值可以赋给变量:

>>> name = ['A', 'B', 'C']

>>> age = [12, 13, 15]

>>> empty = []

>>> print(name, age, empty)

['A', 'B', 'C'] [12, 13, 15] []

二,列表元素可修改

读取列表元素的语法就如同读取字符串中的字符一样,即用方括号运算符就可以了。方括号内的数字用来确定索引位置。一定要记住,Python是从零开始计数的:

>>> name = ['A', 'B', 'C']

>>> name[0]

'A'

>>> name[1]

'B'

和字符串不同的是,列表是可以修改的。方括号运算符放到一个赋值语句的等号左侧的时候,就会把对应位置的列表元素重新赋值。

>>> age = [12, 13, 15]

>>> age[1]

13

>>> age[1] = 20

>>> age[1]

20

列表age的第【1】个元素,其值之前是13,后面重新赋值,变成了20。

列表的索引和字符串的索引的格式是一样的:

* 任意的一个整形表达式,都可以用来作为索引编号。比如age[1],age[2]。

* 如果你试图读取或者写入一个不存在的列表元素,会提示索引错误。

* 如果一个索引是负值,意味着是从列表末尾向前倒序计数查找对应的位置。

其次,在列表中也可以使用 in 运算符:

>>> name = ['A', 'B', 'C']

>>> 'A' in name

True

>>> 'E' in name

False

三,遍历一个列表

遍历一个列表中所有元素的最常用的办法就是for循环了。这种for循环和我们在遍历一个字符串的时候用的是一样的的语法:

$ cat c.py

#!/bin/python

fruits = ['apple', 'orange', 'banana']

for fruit_name in fruits:

    print(fruit_name)

$ python3 c.py

apple

orange

banana

如果你只是要显示一下列表元素,上面这个代码就够用了。

但如果你还想写入或者更新这些元素,我们还是需要用索引。一般来说,这需要把两个内置函数 range 和 len 结合起来使用:

$ cat c.py

#!/bin/python

age = [10, 15, 20, 25]

for i in range(len(age)):

      age[i] = age[i] * 2

      print(age[i])

$ python3 c.py

20

30

40

50

这个循环遍历了列表age,然后对每个元素都进行了更新。len这个函数返回的是列表中元素的数量,range返回的是列表的一系列索引,从0到 n-1,n 就是整个列表age的长度了。

每次循环的时候,i都会得到下一个元素的索引值。在循环体内部的赋值语句,每次都通过 i 作为索引来读该元素的旧值,进行修改然后赋新值给该元素,上述执行结果就是被重新赋值了。

另外,空列表的 for 循环中,循环体是永远不会运行的:

for x in []:

    print('This never happens.')

尽管列表中可以包含另外一个列表,但这种网状的分支列表依然只会被算作一个元素。所以 ,下面这个列表的长度是4:

['test', 1, ['apple', 'I am orange', 'my life'], [1, 2, 3]]

结束。

posted @ 2020-06-22 15:49  巴州夜雨  阅读(136)  评论(0编辑  收藏  举报