从零开始学Python系列课程第18课:容器型数据类型之列表(中)

三、列表的运算

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 中存在很多灵活的方法,列表的相关方法只是其中一部分,学的时候虽然会感到繁琐,但是未来有需求时,大家会看到这些基础是多么的重要,所以还是希望大家打好基础。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HerrFu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值