上节课我们已经学习了列表的定义,列表的索引和切片以及列表元素的修改、删除。列表的操作还有很多,我们这节课继续讲列表的其他操作。
在列表的末尾增加一个新的元素叫做列表元素的追加。列表有append()方法可以追加新的元素,使用方法:
list.append(object)
我们看一下具体的例子:
emperors = ['秦始皇', '汉武帝', '汉光武帝', '唐太宗', '唐玄宗']
emperors.append('宋太祖')
print(emperors)
# ['秦始皇', '汉武帝', '汉光武帝', '唐太宗', '唐玄宗', '宋太祖']
使用append()方法在列表末尾追加了'宋太祖'。
列表的拼接都是将另一个列表的所有内容添加到列表的末尾。列表的拼接有两个方法:第一是使用extend()方法,第二是使用“+”运算符。两种方法的用法分别如下:
list1.extend(list2)
list1 += list2
我们看看具体的例子:
a = [1, 2, 3, 4]
b = [5, 6]
a.extend(b)
print(a)
# [1, 2, 3, 4, 5, 6]
a = [1, 2, 3, 4]
b = [5, 6]
a += b
print(a)
# [1, 2, 3, 4, 5, 6]
我们可以看出,使用两种方法得到的效果是一样的。
列表元素的插入就是在现有的列表的中间位置插入新的元素。插入新元素有两个方法:一种方法是insert()方法,还有一种方法是标量插入法。
insert()方法的使用方法如下:
list.insert(index, object)
方法中需要写两个参数,第一个参数是插入位置的索引值,第二个参数是插入的元素的值。
我们看看具体的用法:
a = [1, 2, 3, 4]
a.insert(2, '插入') # 在索引为2的位置插入元素'插入'
print(a)
# [1, 2, '插入', 3, 4]
我们可以看出,新的元素插入后,索引值为2。
标量插入法是利用列表的切片在列表中插入新的元素,与insert()方法相比,标量插入法可以一次性插入多个元素。我们看一下它具体的使用方法:
a = [1,2,3,4]
a[3:3] = 10, 11, 12
print(a)
# [1, 2, 3, 10, 11, 12, 4]
我们可以看出来,上面的语句与上节课讲的批量修改列表中元素的值很相似。只是切片写成了[3:3],我们分析一下这个代码的逻辑。从索引3到索引3(不包括3),这个位置不包含任何元素。因此写入的元素就变成插入到索引为3的位置了。
上节课中我们讲过列表元素的删除,无论是del语句还是pop()方法,都只能根据列表的索引删除元素。如果我们要根据元素的值删除元素怎么操作呢?我们了解一下一个新的方法,它就是remove()方法。我们看看它的使用方法:
list.remove(obj)
remove()方法中写入一个参数,参数的内容是需要删除的值。运行该方法可以删除列表中第一次出现指定值的元素。(注意:如果同一个值在列表中出现多次,只会删除一个。)
我们看一下具体的例子:
list1 = ['a', 'b', 'c', 'a', 'b', 'c']
list1.remove('b')
print(list1)
# ['a', 'c', 'a', 'b', 'c']
我们可以看出,删除了第一个'b',第二个'b'还在列表中。
列表元素的清空就是删除列表中的所有元素,使它变成空列表。操作非常简单,但是有两种方式实现:第一种是clear()方法,第二种是del语句。clear()方法的使用非常简单,我们看一下使用方法:
list.clear()
下面我们来看看具体的例子吧:
names = ['张三', '李四', '王五']
names.clear()
print(names)
# []
names = ['张三', '李四', '王五']
del names[:]
print(names)
# []
上面是使用clear()方法,下面是使用del语句。都可以实现列表元素清空的操作。
在学习字符串的方法时,我们学过字符串的find()和index()方法,以及count()方法,大家可以复习一下Python字符串的进阶操作(二)的内容。列表中没有find()方法,但是有index()方法和count()方法。我们看一下具体的使用方法。
list1 = ['a', 'b', 'c', 'd']
list1.append('a')
list1.append('a')
print(list1.count('a'))
# 3
以上代码段中,列表中原来有两个'a',又追加了2个'a'。使用count()方法可以得到结果为3。
list1 = ['a', 'b', 'c', 'a', 'b', 'c']
print(list1.index('b')) # 1,第一次出现元素'b'的索引值为1
print(list1.index('e')) # 程序报错,列表中没有元素'e'
查找元素'b'索引为1,而列表中没有元素'e',因此第二个index()会报错。
字符串可以转换成列表类型,转换后每一个字符变成列表的元素。
我们看具体的例子:
s = 'python'
list1 = list(s)
print(list1)
# ['p', 'y', 't', 'h', 'o', 'n']
列表可以转换为布尔值,空列表转换为布尔型的值为False,其他列表转换为布尔型的值都是True。我们看具体的例子:
list1 = ['1', 'a', '2']
print(bool(list1))
# True
list2 = []
print(bool(list2))
# False
在学习字符串时,我们学习了len()函数,这个函数在列表中同样适用,可以获取列表的长度。列表的长度为列表中元素的个数。
使用非常简单,我们看具体的例子:
list1 = [1, 2, 3, 4, 1, 2, 3, 4]
print(len(list1)) # 8
list2 = []
print(len(list1)) # 0
1、下面的程序运行结果是什么?
a = [1, 2, 3, 4, 5, 6]
a.insert(2, 5)
print(a)
2、下面的程序运行结果是什么?
a = [1, 2, 3, 4, 5, 6]
b = [7, 8, 9, 10]
a.append(b)
a.pop()
a.insert(4,b)
print(len(a))
3、编程题
前几天建立的同学的花名册,由于疏忽,可能遗漏了3号同学“李丽”同学,请你用代码检查一下同学花名册中是否有“李丽”同学,如果没有,请加入:
list1 = ['张伟', '李华',"王芳芳","张琴","刘明","马云"] #给定的花名册
1、参考代码:
fruit = ['apple', 'orange', 'pear', 'kiwi', 'mango', 'banana']
print(fruit[0:2]) # 第①题
print(fruit[1:5]) # 第②题
print(fruit[:5:2]) # 第③题
print(fruit[::-1]) # 第④题
2、参考代码:
general = ['刘备', '关羽', '张飞', '赵云', '诸葛亮', '庞统']
# 正向索引方法:
general[4] = '马超'
general[5] = '黄忠'
# 反向索引方法:
general[-2] = '马超'
general[-1] = '黄忠'
print(general)
3、参考代码:
goods = ["鸡蛋","牛奶","啤酒","拖把","香肠","苹果","香蕉","巧克力","饼干","方便面","口罩","消毒液","一次性防护服","防护手套","帽子"]
del list1[-5:-1]
print(list1)
4、参考代码:
JianCeGuo = ['张伟', '李华',"王芳芳","张琴","刘明","马云"]
green = JianCeGuo[:]
name = input('请输入姓名:')
if name in green:
print("监测通过,请通行。")
else:
print("检测不通过,请做核酸检测。")