在实际开发中,经常需要将一些(不只一个)数据暂储起来,以便将来使用。说到这里,一些读者可能知道或听说过数组,它就可以把多个数据挨个存储到一起,通过数组下标可以访问数组中的各个元素。但使用数组存储数据有一个弊端,就是所存储的数据必须类型一致。
需要明确的是, 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'>
可以看到,它的数据类型为 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。
访问列表元素
在 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
从执行结果可以看出,在输出单个列表元素时,是不带中括号的,且如果是字符串,还不包括左右的引号。
除了一次性访问列表中的单个元素外,列表还可以通过切片操作实现一次性访问多个元素。
例如:
num = [1,2,3,4,5,6,7]
print(num[2:4])
有关切片操作的具体格式,可阅读《Python序列详解》一节,这里不再赘述。
输出结果为:
[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
来源:https://blog.csdn.net/yinlu521wang/article/details/99178788