列表是什么
列表让你能够在⼀个地方存储成组的信息,其中既可以只包含几个元素,也可以包含数百万个元素。列表是新手可直接使用的最强大的Python 功能之⼀。
列表(list)是一种可变的序列类型,用于存储一系列有序的元素。这些元素可以是任何类型,包括整数、浮点数、字符串、其他列表(即嵌套列表)等。列表是动态的,可以在运行时增加或删除元素。
用方括号([ ])表示列表,用逗号分隔其中的元素。
下面是⼀个简单的示例
cpp
students = ['刘备','曹操','孙权']
print(students)
1.访问列表元素
使用索引(从0开始)来访问列表中的元素。
例如输出第一个学生的姓名
cpp
students = ['刘备','曹操','孙权']
print(students[0])
通过索引获取列表元素时,只返回该元素,而不包括方括号[ ].
2.索引从0开始而不是1开始
在 Python 中,列表第一个元素的索引是 0,而不是 1,大多数编程语言都是如此 。
cpp
students = ['刘备', '曹操', '孙权']
print(students[0]) #输出第一个元素
print(students[1]) #输出第二个元素
print(students[2]) #输出第三个元素
python为访问最后的元素提供了一种特殊的语法。通过将索引指定为-1,可让 Python 返回最后⼀个列表元素:
cpp
students = ['刘备', '曹操', '孙权']
print(students[-1]) #访问最后一个元素
这种语法在不知道列表长度的情况下访问最后的元素非常好用。当然它也适用于其他负数索引,例如,索引 -2 返回倒数第⼆个元素,索引 -3 返回倒数第三个元素,依此类推。
cpp
students = ['刘备', '曹操', '孙权']
print(students[-1]) #访问倒数第一个元素
print(students[-2]) #访问倒数第二个元素
print(students[-3]) #访问倒数第三个元素
-1索引表示倒数第1个元素,-2索引表示倒数第2个元素,...-n索引表示倒数第n个元素,因为-0就是0索引表示第1个元素。
3.使用列表中的各个值
你可以像使用其他变量⼀样使用列表中的各个值。例如,可以使用 f 字符串根据列表中的值来创建消息。
下面尝试从列表中提取第⼀个同学,并使用这个值创建⼀条消息:
cpp
nums = [1, 2, 3, 4, 5]
x = nums[0] + nums[-1] #第1个元素+最后一个元素
print(x)
4.常见错误
在刚使用列表是容易出现索引错误,例如只有三个元素,却访问3号索引第四个元素
cpp
students = ['刘备', '曹操', '孙权']
print(students[3])
list index out of range : 列表索引超出范围
3.2 修改,添加和删除元素
列表(list)是一种可变的序列类型,这意味着列表创建后,将随着程序的运行修改,添加或者删除元素。
例如,你可能创建了⼀个游戏,要求玩家消灭从天而降的外星人。为此,可在开始时将外星人存储在列表中,每当有外星人被消灭时,将其从列表中删除,而每次有新的外星人出现时,将其添加到列表中。在整个游戏运行期间,外星人列表的长度将不断变化。
1.修改元素
通过列表名和索引指定具体元素,再指定该元素的新值。
列表名[索引] = 新值
cpp
students = ['刘备', '曹操', '孙权']
students[0] = '诸葛亮' #把第1个学生改为诸葛亮
2.添加元素
python提供多种在列表中添加元素的方式。
2.1 在列表末尾添加元素
使用追加append()方法将元素添加到列表末尾。
cpp
students = ['刘备', '曹操', '孙权']
print(students)
students.append('张飞') #在列表的末尾添加'张飞'
print(students)
append() 方法让动态创建列表易如反掌。你可以先创建⼀个空列表,再使用append() 添加元素。
这种创建列表的方式极其常见,因为经常要等程序运行后,你才知道在程序中需要存储哪些数据。
cpp
students = [] #创建一个空列表
#下面模拟程序运行中添加元素
students.append('刘备') #添加刘备到列表尾
students.append('曹操') #添加曹操到列表尾
students.append('孙权') #添加孙权到列表尾
students.append('张飞') #添加张飞到列表尾
print(students)
2.2 插入元素
使用insert() 方法可在列表指定的索引处插入新元素。
insert(索引,新元素)
cpp
students = ['刘备', '曹操', '孙权']
print(students)
students.insert(0, '张飞') #在列表的开头添加'张飞'
print(students)
3.删除元素
1.使用del删除元素
如果知道要删除的元素在列表中的位置,可使用del 语句:
cpp
students = ['刘备', '曹操', '孙权']
print(students)
del students[1] #删除曹操
print(students)
使用 del 语句删除了列表 students 中的第二个元素"曹操",结果如下:
使用 del 语句将元素从列表中删除后,你就无法再访问它了。
2.使用pop方法删除元素
pop(索引),删除索引位置的元素,不给索引则删除末尾元素
你如果只需要删除列表的末尾元素,可以使用pop函数。
cpp
students = ['刘备', '曹操', '孙权']
print(students)
s = students.pop() #不指定索引,删除的是最后一个
print(students)
print(f"刚删除的学生是:{s}")
当然利用pop方法,也可以删除任意元素
cpp
students = ['唐僧', '孙悟空', '猪八戒','沙悟净']
print(students)
s = students.pop(1) #删除指定索引元素'孙悟空'
print(students)
print(f"刚删除的学生是:{s}")
pop删除的元素可以被变量接收然后再使用
该使用 del 语句还是 pop() 方法,下面是⼀个简单的判断标准:
如果要从列表中删除⼀个元素,且不再以任何方式使用它,就使用 del 语句;
如果要在删除元素后继续使用它,就使用 pop() 方法。
根据值删除元素
如果不知道删除值的索引位置,只知道要删除的元素的值,可使用 remove() 方法。
remove( 要删除的值 )
cpp
students = ['唐僧', '孙悟空', '猪八戒','沙悟净']
print(students)
students.remove('猪八戒')
print(students)
注意:remove() 方法只删除第⼀个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环,确保将每个值都删除
本篇完!