列表(list)
列表是容器型数据类型(可以同时保存多个数据);
将[]作为容器的标志,里面多个元素(一个容器中每个独立的数据就是元素)用逗号隔开;[元素1, 与元素2, 元素3, …]
特点:
列表是可变的(可变指的事元素的个数,元素的值和元素的顺序可变) - 列表支持增删改
列表是有序的 - 列表支持下标操作
列表的元素 - 任何类型的数据都可以作为列表的元素
# 1.空列表
list1 = []
# 2.列表中的元素的类型
# 同一个列表中的元素类型可以相同
list2 = [11, 22, 33]
# 同一个列表中的元素类型可以不同
list3 = [11, 'abc', True, 2.3]
# 一个李彪可以作为另一个列表的元素
list4 = [11, [22, 33]]
# 3.列表是有序的
print([10, 20, 30] == [30, 20, 10]) # False
列表操作
查 -
# 1. 获取列表单个元素
# 语法: 列表[下标]
# 说明: 下标有两种,第一种是从前往后从0开始不断增加。第二种从从后往前从-1开始不断减小。下标不能越界
list1 = [11, 22, 33]
print(list1[0]) # 11
print(list1[1]) # 22
print(list1[2]) # 33
print(list1[-1]) # 33
print(list1[-2]) # 22
print(list1[-3]) # 11
a = list1
print(a[0]) # 11
print(a[-3]) # 11
# 2. 获取部分元素 - 切片
# 语法:列表[开始下标:结束下标:步长]
list1 = [11, 22, 33, 44, 55, 66]
print(list1[1:-1:2]) # 22 44
print(list1[1:-1:3]) # 22 55
print(list1[1:-1]) # 22 33 44 55
games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']
print(games[1:-1: 3]) #王者荣耀 部落冲突
print(games[2:6:-2]) # []
print(games[0:5:4]) # 英雄联盟 部落冲突
print(games[6:-4:-1]) # 绝地求生 原神 部落冲突sh
# 省略语法:
# 1). 省略步长: 列表[开始下标:结束下标] ,步长默认1
list1 = [11, 22, 33, 44, 55, 66, 77, 88]
print(list1[2:5]) # 33 44 55
print(list1[-1:-5]) # []
# 2). 省略开始下标: 列表[:结束下标:步长] 或 列表[:结束下标]
# 如果步长为正,从第一个元素往后取,相反如果步长为负,从最后一个往前取
list1 = [11, 22, 33, 44, 55, 66, 77, 88]
print(list1[:3]) # 11 22 33
print(list1[:3:-1]) # 88 77 66 55
print(list1[:-2:-2]) # 88
# 3). 省略结束下标: 列表[开始下标::步长] 或 列表[开始下标:]
# 如果步长为正,从开始下标开始往后取,一直到最后一个元素,如果步长为负,从开始下标开始往前取,一直到最后一个元素
list1 = [11, 22, 33, 44, 55, 66, 77, 88]
print(list1[4:]) # 55, 66, 77, 88
print(list1[3::-2]) # 44, 22
print(list1[3::2]) # 44 66 88
# 3. 遍历 - 将列表中的元素一个一个的全部取完
'''
方法1 - 直接获取元素
for 变量 in 列表:
循环体(变量取到的是每个元素的值)
'''
list1 = [11, 22, 33, 44, 55, 66, 77, 88]
for x in list1:
print(x) # 11 22 33 44 55 66 77 88
nums = [28, 73, 55, 60, 98, 21]
# 练习1:求nums中所有元素的和
s = 0
for x in nums:
s += x
print(s)
# 练习2:统计nums中奇数的个数
count = 0
for x in nums:
if x % 2 != 0:
count +=1
print(count)
'''
方法2: - 通过遍历下标来遍历元素
for 变量 in range(len(列表)):
循环体(变量取到的是每个元素的下标,列表[下标就可以获取到元素)
'''
nums = [28, 73, 55, 60, 98, 21]
for index in range(len(nums)):
print(index,nums[index])
'''
方法3:- 同时获取下标和元素
for 变量1,变量2 in enumerate(列表):
循环体(变量1依次获取到的是每个元素的下标,变量2依次获取到的是每个元素)
'''
nums = [28, 73, 55, 60, 98, 21]
for index, x in enumerate(nums):
print(index,x)