三、列表的运算
1. 加法与乘法运算
列表可以进行加法与乘法的运算,只不过我们需要换一种说法:拼接(加法)与重复(乘法)。
num_list = [1, 2, 3, 4]
bool_list = [True, True]
print(num_list + bool_list)
# [1, 2, 3, 4, True, True]
print(num_list * 3)
# [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
2. 成员运算
所谓成员运算,作用就是判断某个元素是否存在于某个容器中,成员运算的结果为布尔值,涉及到的 Python 关键字为 in(存在)、not in(不存在)。在运算符下篇中,我们其实已经使用列表讲述过成员运算,大家可以适当的进行复习。
num_list = [1, 2, 3, 4]
# 分别判断数字 3和列表[3]在不在 num_list列表中
result_1 = 3 in num_list
result_2 = [3] not in num_list
print(result_1, result_2)
# True True
3. 比较运算
之前讲比较运算符的时候,我们举的例子都是数字比较大小,其实所有的数据类型都可以做大小的比较,只不过要遵守一定的规则规范,那么接下来我们看一下列表与列表应该如何进行大小的比较。
a = [1, 3, 4]
b = [1, 2.5]
c = [1, 3]
print(a < b, a > c)
# False True
为什么列表 a 小于列表 b 是假的,列表 a 大于列表 c 是真的呢?请记住以下几点:
- 有序容器比较大小比较的是位置相同的第一对不相同元素的大小(两个有序容器中索引相同的看做一对元素),因为 3 > 2.5, 所以列表 a 应该大于列表 b。
- 如果找不出不相同元素,元素多的列表大,所以列表 a 应该大于列表 c。
- 元素比较大小时,一定要同类型数据比较大小(整型和浮点型都看做数字一种类型)。
最后也请大家思考一下:列表 b 和列表 c 的大小关系是怎样的呢?
因为 2.5 < 3,所以列表 b < 列表 c。
四、列表相关方法
添加元素类方法
- append:向列表末尾追加一个元素。
- insert:向列表的指定位置(索引)插入一个元素。
- extend:将其它容器中的所有元素追加到列表中。
list1 = ['Java']
list1.append('Python')
list1.append(['C++'])
print(list1)
# ['Java', 'Python', ['C++']]
list1.insert(1, 'HTML')
print(list1)
# ['Java', 'HTML', 'Python', ['C++']]
list1.extend(('CSS', 'JavaScript', 'SQL', ('R', 'C#')))
print(list1)
# ['Java', 'HTML', 'Python', ['C++'], 'CSS', 'JavaScript', 'SQL', ('R', 'C#')]
删除元素类方法
- remove:移除列表中的指定元素,如果元素不存在,报错。
- pop:根据索引删除元素,如果索引不存在,报错,如果未提供索引,默认删除列表中最后一个元素。
- clear:直接清空列表。
list1.remove('SQL')
print(list1)
# ['Java', 'HTML', 'Python', ['C++'], 'CSS', 'JavaScript', ('R', 'C#')]
list1.pop(0)
list1.pop()
print(list1)
# ['HTML', 'Python', ['C++'], 'CSS', 'JavaScript']
list1.clear()
print(list1)
# []
元素排序类方法
- sort:将列表中元素进行排序,默认为升序排序,修改 reverse 参数为 True 变为降序排序(注意:确保列表中所有元素为同类型数据,只有同类型数据才能比较大小排序)。
- sorted:作用同 sort 方法,sorted 与 sort 区别在于 sort 方法修改列表本身,sorted 方法是产生一个新的列表。
- reverse:将列表进行反转。
list2 = ['abc', '123', 'cdc']
list2.sort()
print(list2)
# ['123', 'abc', 'cdc']
list2.sort(reverse=True)
print(list2)
# ['cdc', 'abc', '123']
list3 = sorted(list2)
print(list3)
# ['123', 'abc', 'cdc']
list4 = sorted(list2, reverse=True)
print(list4)
# ['cdc', 'abc', '123']
list5 = [1, 2, 3]
list5.reverse()
print(list5)
# [3, 2, 1]
其他方法
- count:统计列表中某个元素出现的次数。
- index:从列表中找出某个元素第一次出现的索引,或者从指定位置开始查找某个元素头一次出现的索引,如果元素不存在报错。
list6 = ['王者荣耀', '英雄联盟', '王者荣耀', '王者荣耀']
result_1 = list6.count('王者荣耀')
print(result_1)
# 3
result_2 = list6.index('王者荣耀')
result_3 = list6.index('王者荣耀', 1)
print(result_2, result_3)
# 0 2
Python 中存在很多灵活的方法,列表的相关方法只是其中一部分,学的时候虽然会感到繁琐,但是未来有需求时,大家会看到这些基础是多么的重要,所以还是希望大家打好基础。