Day4 列表

1. 认识列表

1.1 什么是列表(list)

列表是Python提供的容器型数据类型;将[]作为容器的标志,里面多个元素用逗号隔开:[数据1, 数据2, 数据3,...]
列表是可变的(指的是元素的个数和值可变);列表是有序的(支持下标操作)
元素:任何类型的数据都可以作为列表的元素
说明:
容器型数据 - 可以同时保存多个数据
元素:- 容器中每个独立的数
#1)空列表
list1 = []
print(list1)

#2)列表的元素
list2 = [10, 20, 30]
print(list2)

list3 = [19, 3.45, 'abc', None, False]
print(list3)

list4 = [10, [20, 30]]
print(list4)

#3)列表是有序
print([10, 20] == [20, 10])     # False
print({10, 20} == {20, 10})     # True  (集合是无序的)

2. 列表的增删改查

2.1 查 - 获取列表元素

查单个 - 获取列表中的某一个元素
语法: 列表[下标] - 获取列表中指定下标对应的元素
说明:a.列表 - 可以是具体的一个列表,也可以是保存列表的变量
     b.[] - 固定写法
     c.下标 - 又叫索引;列表的下标指定是列表中的元素在列表中的位置信息。
             第一种下标(通用的): 元素从前往后对应的下标从0开始依次增加
             第二种下标: 元素从后往前对应的下标从-1开始依次减少
注意:下标不能越界
nums = [10, 20, 30]
print(nums[-1], nums[2])
print(nums[0])

# print(nums[3])        # 报错!

heroes = ['王昭君', '猪八戒', '孙悟空', '后羿', '鲁班7号', '小炮', '女警', '小法', '流浪法师', '蛇女']
print(heroes[2])
print(heroes[-2])
print(heroes[-4])
遍历循环 - 一个一个的获取列表中每个元素
语法1:
for 变量 in 列表:
循环体

语法2:
for 变量 in range(len(列表)):
循环体(列表[变量])

补充:len(列表)  - 获取列表中元素的个数(获取列表的长度)
案例:统计scores中不及格分数的个数
scores = [90, 34, 79, 99, 100, 77, 56, 67, 55]
count = 0
for x in scores:
if x < 60:
  count += 1
print(count)

scores = [90, 34, 79, 99, 100, 77, 56, 67, 55]
for x in range(len(scores)):
print(x, scores[x])

2.2 改 - 修改元素的值

语法:列表[下标] = 新值    -  修改列表中指定下标对应的元素为指定的新值
案列:将scores中所有不及格的分数改成‘重修’
scores = [90, 34, 79, 99, 100, 77, 56, 67, 55]
for index in range(len(scores)):
s = scores[index]
if s <  60:
scores[index] = '重修'
print(scores)

2.3 增 - 添加元素

列表.append(元素) - 在指定列表的最后添加指定的元素
案例:提取scores中所有不及格的分数,产生一个新的列表
scores = [90, 34, 79, 99, 100, 77, 56, 67, 55]
new_scores = []
for x in scores:
if x < 60:
  new_scores.append(x)
print(new_scores)  
列表.insert(下标, 元素) - 将元素插入到列表中指定下标对应的元素前
heroes = ['王昭君', '猪八戒', '孙悟空', '后羿', '鲁班7号']
print(heroes)       # ['王昭君', '猪八戒', '孙悟空', '后羿', '鲁班7号']
heroes.insert(1, '赵云')
print(heroes)       # ['王昭君', '赵云', '猪八戒', '孙悟空', '后羿', '鲁班7号']
heroes.insert(0, '甄姬')
print(heroes)       # ['甄姬', '王昭君', '赵云', '猪八戒', '孙悟空', '后羿', '鲁班7号']

2.4 删 - 删除元素

del 列表[下标] - 删除列表中指定下标对应的元素
heroes = ['王昭君', '猪八戒', '孙悟空', '后羿', '鲁班7号']
del heroes[1]
print(heroes)       # ['王昭君', '孙悟空', '后羿', '鲁班7号']
列表.remove(元素) - 删除列表中的第一个指定元素
heroes = ['王昭君', '猪八戒', '孙悟空', '后羿', '猪八戒', '鲁班7号']
heroes.remove('猪八戒')
print(heroes)       # ['王昭君', '孙悟空', '后羿', '猪八戒', '鲁班7号']
# heroes.remove('赵云')       # 元素不存在会报错
列表.pop() - 取出列表中最后一个元素,并且返回(pop操作的结果就是从列表中取走的数据)
列表.pop(下标) - 列表中指定下标元素
heroes = ['王昭君', '猪八戒', '孙悟空', '后羿', '猪八戒', '鲁班7号']
result1 = heroes.pop()
print(heroes, result1)     

result2 = heroes.pop(2)
print(heroes, result2)

3. 列表的相关操作

3.1 列表加法运算

列表1 + 列表2 - 将两个列表合并成一个新的列表
A = [10, 20, 30]
B = [100, 200]
C = A + B
print(C)

3.2 列表乘法运算

列表 * N,N * 列表 - 将列表中的元素重复N次产生一个新的列表
C = A * 2        # A + A  ->  [10, 20, 30, 10, 20, 30]
print(C)        # [10, 20, 30, 10, 20, 30]

3.3 in 和 not in

数据 in 列表 - 判断指定数据是否是列表中的元素
数据 not in 列表 - 判断指定数据是否不是列表中的元素
A = [10, 20, 30]
print(10 in A)

A = [10, [20, 30]]
print(20 in A)  

3.4 列表相关函数

sum(列表) - 求列表中所有元素的和(列表中的元素必须全部是数字)
A = [10, 20, 30]
print(sum(A))    
max(列表) - 获取列表中最大元素
scores = [90, 34, 79, 99, 100, 77, 56, 67, 55]
print(max(scores))
print(min(scores))

sorted(列表) - 将列表中的元素从小到大排序,产生一个新的列表
sorted(列表, reverse=True) - 将列表中的元素从大到小排序,产生一个新的列表
new_scores = sorted(scores)
print(new_scores)       # [34, 55, 56, 67, 77, 79, 90, 99, 100]
new_scores = sorted(scores, reverse=True)
print(new_scores)       # [100, 99, 90, 79, 77, 67, 56, 55, 34]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值