Python列表(list) 图片看不了?点击切换HTTP 返回上层
需要明确的是,Python 中没有数组,但是加入了更加强大的列表。如果把数组看做是一个集装箱,那么 Python 的列表就是一个工厂的仓库。
从形式上看,列表会将所有元素都放在一对中括号 [] 中,相邻元素之间用逗号分隔,如下所示:
[element1,element2,element3,...,elementn]
格式中,element1~elementn 表示列表中的元素,个数没有限制,只要是 Python 支持的数据类型就可以。从内容上看,列表可以存储整数、实数、字符串、列表、元组等任何类型的数据,并且和数组不同的是,在同一个列表中元素的类型也可以不同。比如说:
["c.biancheng.net" , 1 , [2,3,4] , 3.0]
可以看到,列表中同时包含字符串、整数、列表、浮点数这些数据类型。注意,在使用列表时,虽然可以将不同类型的数据放入到同一个列表中,但通常情况下不这么做,同一列表中只放入同一类型的数据,这样可以提高程序的可读性。
另外,在其它 Python 教程中,经常用 list 代指列表,这是因为列表的数据类型就是 list,通过 type() 函数就可以知道,例如:
>>> type(["c.biancheng.net" , 1 , [2,3,4] , 3.0])
<class 'list'>
Python创建列表
在 Python 中,创建列表的方法可分为 2 种,下面分别进行介绍。使用 = 运算符直接创建列表
和其他类型的 Python 变量一样,创建列表时,也可以使用赋值运算符“=”直接将一个列表赋值给变量,其语法格式如下:listname = [element1 , element2 , element3 , ... , elementn]
其中,listname 表示列表的名称,注意,在命名时既要符合 Python 命名规范,也要尽量避开与 Python 的内置函数重名。例如,下面定义的列表都是合法的:
num = [1,2,3,4,5,6,7] name = ["C语言中文网","http://c.biancheng.net"] program = ["C语言","Python","Java"]
另外,使用此方式创建列表时,列表中元素可以有多个,也可以一个都没有,例如:
emptylist = []
这表明,emptylist 是一个空列表。使用list()函数创建列表
除使用前面介绍的方括号语法创建列表之外,Python 还提供了一个内置的 list() 函数来创建列表,它可用于将元组、区间(range)等对象转换为列表,例如:a_tuple = ('crazyit', 20, -1.2) # 将元组转换成列表 a_list = list(a_tuple) print(a_list)输出结果为:
['crazyit', 20, -1.2]
此程序的功能是将一个元组 ('crazyit', 20, -1.2) 转换成列表。由于尚未学习元组,因此初学者只需要知道,用圆括号 () 括起来的多个数据,就是一个元组。再举个例子:
# 使用range()函数创建区间(range)对象 a_range = range(1, 5) # 将区间转换成列表 b_list = list(a_range) print(b_list)输出结果为:
[1, 2, 3, 4]
程序中,range(1,5) 函数的功能是生成从 1(包括 1)到 5(不包括 5)之间的整数,也就是 1、2、3、4。有关 range() 函数的具体用法,后续章节会作详细介绍。
访问列表元素
在 Python 中,如果想将列表的内容输出也比较简单,直接使用 print() 函数即可。例如,前面已经创建了一个名为 name 的列表,输出此列表的执行代码如下:name = ["C语言中文网","http://c.biancheng.net"] print(name)运行结果为:
['C语言中文网', 'http://c.biancheng.net']
可以看到,输出整个列表时,是包括左右两侧的中括号的。如果不想要输出全部的元素,可以通过列表的索引获取指定的元素。例如,获取 name 列表中索引值为 1 的元素,可以使用如下代码:
name = ["C语言中文网","http://c.biancheng.net"] print(name[1])运行结果为:
http://c.biancheng.net
从执行结果可以看出,在输出单个列表元素时,是不带中括号的,且如果是字符串,还不包括左右的引号。除了一次性访问列表中的单个元素外,列表还可以通过切片操作实现一次性访问多个元素。
有关切片操作的具体格式,可阅读《Python序列详解》一节,这里不再赘述。
例如:
num = [1,2,3,4,5,6,7] print(num[2:4])输出结果为:
[3, 4]
可以看到,通过切片操作,最终得到的是一个新的列表。Python删除列表
对于已经创建的列表,如果不再使用,可以使用 del 语句将其删除。实际开始时,del 语句不常用,因为 Python 自带的垃圾回收机制会自动销毁不用的列表,所以即使开发者不手动将其删除,Python 也会自动将其回收。
del 的语法格式为:
del listname
其中,listname 表示要删除列表的名称。例如,删除前面创建的 name 列表,可以使用下面的代码:
name = name = ["C语言中文网","http://c.biancheng.net"] print(name) del name print(name)运行结果为:
['C语言中文网', 'http://c.biancheng.net']
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
print(name)
NameError: name 'name' is not defined