Python列表是Python中很重要的一个数据类型。列表中的每个数据称之为列表的项。列表中的每一项使用英文逗号进行分隔,所有项放在方括号中。同时,列表中的每项的数据类型不一定相同。我们可以对列表项进行增,改,删操作。
lst1 = [] #创建一个空的列表
lst2 = ['Python', 'Java', 'R', 'SPSS'] # 字符串列表
lst3 = [1, 2, 3, 4, 5] # 整型列表
lst4 = [1, 'Python', 2, 'Java', 'R', 3] # 混合数据类型的列表
# 使用print方法输出列表
print(lst1)
print(lst2)
print(lst3)
print(lst4)
上面代码执行后生成下图所示的结果:
列表中的每一项都有其位置索引,从列表左侧进行编号的话是从 0 开始的,从右边进行编号的话,是从 -1 开始的。我们可以使用 list_name[index] 的方式来访问列表中某一项的值:
lang = ['Python', 'C#', 'R', 'Java', 'PHP']
s = lang[0] # 索引为0的项
print(s)
print(lang[2]) # 索引为2的项
s1 = lang[-1] # 访问最后一项
print(s1)
输出结果为:
列表定义完后,如修改里面某项的值,可以使用 list_name[index] = newvalue 的形式来完成。
like_fruits = ['apple', 'pear', 'banana', 'orange']
print('更新前的值:', end = '')
print(like_fruits)
like_fruits[1] = 'berry' # 修改索引为1处的值
print('更新后的值:', end = '')
print(like_fruits)
like_fruits[-1] = 'mango'
print(like_fruits)
输出结果:
更新前的值:['apple', 'pear', 'banana', 'orange']
从输出结果来看,第2项(索引为1)的值已经被修改,在此基础上,使用负数索引,把最后一项的值也修改了。
更新后的值:['apple', 'berry', 'banana', 'orange']
['apple', 'berry', 'banana', 'mango']
Python中提供了多种方式来删除列表中的某一项。
# 定义一个颜色列表
list_colors = ['Red', 'Blue', 'Black', 'White', 'Pink', 'Green', 'Gray']
print('原列表:',list_colors)
# 使用 remove 删除指定值的列表项
list_colors.remove('Green')
print('使用remove删除/'Green/'后:', list_colors)
# 使用 del 删除指定索引处的列表项
del list_colors[2]
print('使用del删除索引2处的项后:', list_colors)
# 使用pop方法移除指定索引处的项
list_colors.pop(3)
print('使用pop方法删除索引3处的项后:', list_colors)
输出结果:
原列表: ['Red', 'Blue', 'Black', 'White', 'Pink', 'Green', 'Gray']
注意上面使用Remove方法来删除列表中的项时,只能使用具体的值来删除,不能使用索引(为什么呢?大家可以思考一下这个问题),并且要删除的值必须在列表中存在,否则会报错。使用pop时只能使用索引,不能使用值来删除。
使用remove删除'Green'后: ['Red', 'Blue', 'Black', 'White', 'Pink', 'Gray']
使用del删除索引2处的项后: ['Red', 'Blue', 'White', 'Pink', 'Gray']
使用pop删除索引3处的项后: ['Red', 'Blue', 'White', 'Gray']
Python中的 del 不仅能删除列表中的某一项,还能将整个列表进行删除,看下面的例子:
>>> lst = ['A', 'B', 'C']
>>> print(lst)
['A', 'B', 'C']
>>> del lst[1]
>>> print(lst)
['A', 'C']
>>> del lst
>>> print(lst)
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
print(lst)
NameError: name 'lst' is not defined
从上面的例子中可以看出,del把lst列表的定义给删除了,内存中不存在lst,造成再次访问时发生 NameError 错误。
能使用索引的方法,也可以使用负数索引从后面进行操作。
列表中又包含列表,称之为嵌套列表。下面使用例子来说明其具体操作。
# 定义一个嵌套列表
list1 = ['武林网VEVB', 'http://www.VeVb.com', ['Python', 'HTML', 'CSS'], 2008]
# 输出原列表
print('原列表:', list1)
#访问嵌套列表
print('list1[0]:',list1[0])
print('list1[2]:',list1[2])
print('list1[2][1]:',list1[2][1])
print('list1[2][-1]:',list1[2][-1])
# 修改嵌套列表项
list1[0] = '武林网'
print('修改[0]:',list1)
list1[2][2] = 'C#'
print('修改[2][2]', list1)
list1[2][-1] = 'SPSS'
print('修改[2][-1]', list1)
#删除嵌套列表的项
list1[2].remove('SPSS')
print("[2].remove('SPSS')", list1)
list1[2].pop(0)
print('[2].pop[0]:', list1)
以上在Python中的输出情况如下图所示
除此之外,Python中还提供了多种函数以及相关的运算符完成对列表的相关操作,本站今后将继续提供相关内容。
本文(完)
新闻热点
疑难解答