1、列表:修改、添加和删除元素
我们创建的列表大多数是动态的,这意味着列表创建后,将随着程序的运行增删元素。
1.1 修改列表元素
修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
示例:
1 cars = [‘audi‘,‘toyota‘,‘bmw‘,‘hongqi‘,‘jili‘,‘byd‘] 2 print(cars) 3 4 cars[2] = "jiefang" 5 print(cars)
结果:
[‘audi‘, ‘toyota‘, ‘bmw‘, ‘hongqi‘, ‘jili‘, ‘byd‘] [‘audi‘, ‘toyota‘, ‘jiefang‘, ‘hongqi‘, ‘jili‘, ‘byd‘] #可以看到列表索引为2的元素从bmw替换为了jiefang
1.2 在列表中添加元素:方法append()、方法insert()
我们经常需要在列表中添加元素,一般情况下我们需要在列表的末尾或者其他指定位置这两处添加元素。
1.2.1 在列表末尾添加元素:方法append()
方法append()的两种常用场景:
第1种:将元素添加到已有列表末尾,而不影响列表中的其他所有元素。
示例:
1 cars = [‘audi‘,‘toyota‘,‘bmw‘,‘hongqi‘,‘jili‘,‘byd‘] 2 print(cars) 3 4 cars.append("shanghai") 5 print(cars)
结果:
[‘audi‘, ‘toyota‘, ‘bmw‘, ‘hongqi‘, ‘jili‘, ‘byd‘] [‘audi‘, ‘toyota‘, ‘bmw‘, ‘hongqi‘, ‘jili‘, ‘byd‘, ‘shanghai‘] #可以看到新的元素已经被添加到列表末尾
第2种:创建一个空的列表,再使用一系列的append()语句向列表中添加元素。
示例:
1 cars = [] 2 3 cars.append(‘BMW‘) 4 cars.append(‘audi‘) 5 cars.append(‘hongqi‘) 6 cars.append(‘BYD‘) 7 cars.append(‘jiefang‘) 8 cars.append(‘shanghai‘) 9 10 print(cars)
结果:
[‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] #可以看到我们想要添加到列表中的元素已经被加入列表
1.2.2 在列表中插入元素:方法insert()
使用方法insert()可以将新元素插入列表中的任何位置,使用方法insert()时,我们需要指定新元素的索引和值insert(索引,‘值‘)
示例:
1 cars = [‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] 2 print(cars) 3 4 cars.insert(3,‘renmin‘) #将值为renmin的新元素插入列表中索引为3的位置,观察列表 5 print(cars)
结果:
[‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] [‘BMW‘, ‘audi‘, ‘hongqi‘, ‘renmin‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘]
#可以看到值为renmin的新元素已插入列表中索引为3的位置,列表中的原来索引为3及之后的每个元素都右移一个位置。
1.3 从列表中删除元素:del语句、方法pop()、方法remove()
我们经常需要从列表中删除元素(一个或多个),我们可以根据元素在列表中的位置或者元素的值来从列表中删除该元素;同时,如果我们要从列表中删除一个元素,且不再以任何方式使用它,那此时我们使用del语句;如果我们要在删除元素后还能继续使用该元素,那此时我们使用方法pop()或者方法remove()。
1.3.1 使用del语句永久删除元素:使用条件是需要知道该元素在列表中的位置。
使用方法 :del 列表名[元素索引]
示例:
1 cars = [‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] 2 print(cars) 3 4 del cars[1] #使用del语句删除列表cars中索引为1的元素 5 print(cars) #打印列表,观察列表元素的变化
结果:
[‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] [‘BMW‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] #删除列表元素后,列表输出结果发生了变化。 #可以观察到,使用del语句删除列表元素为永久删除,后续将无法再访问该元素
1.3.2 使用方法pop()删除元素:方法pop()中的括号内容为空
方法pop()可以删除列表末尾中元素,并让你能够接着使用它。
术语弹出(pop)源自这样的类比:列表就像一个栈,而删除列表末尾的元素就相当于弹出栈顶元素。
示例:
1 cars = [‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] 2 print(cars) #打印原始列表 3 4 new_cars = cars.pop() 5 #对列表cars使用方法pop(),将列表末尾的值弹出,并将弹出的这个值存储在变量new_cars中 6 print(cars) #打印列表cars,观察列表元素的变化 7 print(new_cars) #打印变量new_cars,证明我们可以访问被弹出的值
结果:
[‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] #原始列表 [‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘] #对列表使用方法pop()后,列表末尾元素已被删除 shanghai #将删除的列表末尾元素存储在变量中,打印变量,证明我们仍可以访问被删除的值
1.3.3 使用方法pop()弹出列表中任何位置处的元素:在方法pop()中的括号内添加元素索引
我们也可以使用pop()来删除列表中任何位置的元素,只需要在括号中指定要删除的元素的索引即可。
示例:
1 cars = [‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] 2 print(cars) #打印原始列表 3 4 new_cars = cars.pop(1) 5 #对列表cars使用方法pop(),将列表中索引为1的值删除,并将弹出的这个值存储在变量new_cars中 6 print(cars) #打印列表cars,观察列表元素的变化 7 print(new_cars) #打印变量new_cars,证明我们可以访问被弹出的值 8 print("The first car I owned was a "+new_cars.title()+".") 9 #使用方法pop()打印一条消息
结果:
[‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] #原始列表 [‘BMW‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] #删除索引为1的元素后的列表 audi #被删除的值 The first car I owned was a Audi. #使用被删除的值生成的消息
1.3.4 根据值删除元素:方法remove()
如果我们不知道要从列表中删除的元素在列表中的位置,只知道该元素的值,那么此时我们使用方法remove()删除列表中的元素。
示例:
1 cars = [‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] 2 print(cars) #打印原始列表 3 4 cars.remove(‘audi‘) #释放方法remove()删除列表中值为audi的元素 5 print(cars) #打印列表
结果:
[‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] #原始列表 [‘BMW‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] #使用方法remove()删除元素后的列表
在使用方法remove()从列表中删除元素时,也可以接着使用该元素的值:提前将要删除的元素的值存储在变量中,然后使用变量来告诉Python将哪个值从列表中删除,这个时候虽然该值已从列表中删除,但是由于它存储在变量中,我们仍可以使用该值。
示例:
1 cars = [‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] 2 print(cars) #打印原始列表 3 4 new_car = ‘audi‘ #将要删除的值存储在变量中 5 cars.remove(new_car) #通过变量告诉Python要删除的值 6 print(cars) #打印删除值后的列表 7 print("The first car I owned was a "+new_car+".") #使用存储有删除值的变量生成信息
结果:
[‘BMW‘, ‘audi‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] [‘BMW‘, ‘hongqi‘, ‘BYD‘, ‘jiefang‘, ‘shanghai‘] The first car I owned was a audi.
注意:方法remove()只删除第一个指定的值,如果要删除的值在列表中多个位置出现,这个时候就需要使用循环来判断是否删除了所有这样的值。
原文:https://www.cnblogs.com/jingxiaodong/p/12695073.html