day6.列表学习总结

Day6-列表

1.else

1)完整的for 循环:

for 变量 in序列:

​ 循环体

else:

​ 代码段

2)完整的while循环:

while 条件语句:

​ 循环体

else:

​ 代码段

else的存在并不会影响原来的循环的执行;

如果循环自然死亡,循环结束后执行else后面的代码;如果循环是因为遇到break而结束的,那么else后面的代码就不会执行。

2.认识列表

scores = [98, 34, 89, 99, 56, 100, 91, 70]

print('平均分: ', sum(scores) / len(scores))

print('最高值: ', max(scores))

1.什么是列表(list)

列表是Python中的容器型数据类型;将[ ]作为容器的标志,里面有多个数据用逗号隔开:[数据1, 数据2, 数据3, …]

列表是可变的(元素的个数、元素的值和顺序都可以改变–支持增、删、改);列表是有序的(支持下标操作)

补充:元素-容器中每个独立的数据就是这个容器中的每个元素

​ len(列表)- 获取列表元素的个数

2.空列表

list1 = [ ]

print(type(list1), len(list1))

任何类型的数据都可以是列表的元素;同一个列表中的元素的类型可以不相同

list2 = [100]

list3 = [98, 34, 89, 99, 56, 100, 91, 70]

list4 = ['字符串']

list5 = [字符串, 数据, 布尔值, 空值]

list6 = [10, [20, 30]]

print(len(list6))


3.查操作

1.查单个 —— 获取列表中的一个元素

1)语法:

列表[下标] —— 获取列表中指定下标对应的元素

2)说明:

列表 —— 任何结果是列表的表达式,一般是保存列表的变量或者具体某一个列表

[] —— 固定写法

下标 —— 又叫索引,就是列表中元素的位置信息

列表任何结果是列表的表达式,一般是保存列表的变量或者具体某一个列表
[]固定写法
下标又叫索引,就是列表中元素的位置信息 列表中的每个元素都有两个下标值分别是:∶从前往后数从O开始不断增加的下标值、从后往前从-1开始不断减小的下标值

注意:下标不能越界

movies = ['复联3', '忍者神龟', '阿凡达', '泰坦尼克号']
print(movies[2], movies[-2]) # [阿凡达]

2.遍历 - 一个一个的将列表中的元素全部取一遍

方法一:

for 元素 in 列表:

​ 循环体

for x in movies:
    print('x:', x)
movies = ['复联3', '忍者神龟', '阿凡达', '泰坦尼克号']
for x in range(len(movies)):
    print(x, movies[x])

方法2:—— 通过遍历下标

# x = 0
# while x < len(movies):
#     print(x, movies[x])
#     x += 1
movies = [6, 5, 4, 3, 2, 1, 0]
for x in range(len(movies)-1, -1, -1):
    print(x, movies[x])

方法3:

movies = ['复联3', '忍者神龟', '阿凡达', '泰坦尼克号']
for a, b in enumerate(movies):
    print(a, b)

3.切片 - 获取部分元素

1)完整语法

列表[开始下标:结束下标:步长]
开始下标、结束下标确定切片的有效范围
步长确定获取方式(1.正负决定是从前往后取还是从后往前取,2.绝对值大小决定是一个一个取还是跳着取)

a.怎么看切片结果

第一步先确定结果是否为空(看从开始下标到结束下标对应的方向和步长对应的方式是否一致,如果不一致,结果直接为[])
第二步确定有效范围(开始下标对应的元素能取到,结束下标对应的元素取不到)
第三步根据步长在有效范围内获取元素 ;
绝对值为1:一个一个的取;
绝对值为2:取一个跳一个再取一个;
绝对值为3:取一个跳两个再取一个
movies = ['小森林', '复联3', '肖生克的救赎', '蜘蛛侠', '忍者神龟', '泰坦尼克号', '阿凡达']
print(movies[1:-2:1])  # ['复联3', '肖生克的救赎', '蜘蛛侠', '忍者神龟']
print(movies[4:0:2])  # []

b.通过目标来写切片

第一步:确定开始下标(将目标数据中第一个元素对应的下标作为开始下标)

第二步:确定步长(根据方向确定正负;根据取的时候跳过的方式确定绝对值)
第三步∶确定结束下标(如果步长为正,结束下标是取到的最后一个元素后面那个元素的下标;
(如果步长为负,结束下标是取到的最后一个元素前面那个元素的下标)

第一步确定开始下标(将目标数据中第一个元素对应的下标作为开始下标)
第二步确定步长(根据方向确定正负;根据取的时候跳过的方式确定绝对值)
第三步确定结束下标(如果步长为正,结束下标是取到的最后一个元素后面那个元素的下标;
(如果步长为负,结束下标是取到的最后一个元素前面那个元素的下标)
movies = ['小森林', '复联3', '肖生克的救赎', '蜘蛛侠', '忍者神龟', '泰坦尼克号', '阿凡达']
# ['肖生克的救赎', '蜘蛛侠', '忍者神龟']
print(movies[2:-2:1])
# ['复联3', '蜘蛛侠', '泰坦尼克号']
print(movies[1:-1:2])  
# ['泰坦尼克号', '蜘蛛侠', '复联3']
print(movies[-2:0:-2]) 

2)省略语法

列表[开始:结束下标:步长]

省略步长:列表[开始下标:结束下标]相当于步长为1
省略开始下标:列表[:结束下标: 步长]表示从头开始(头有可能是第一个元素也有可能是最后一个元素)
省略结束下标:列表[开始下标: : 步长]从开始的位置一直取完

1.增 —— 添加元素

1)列表.append(元素) —— 在指定列表的最后添加指定元素

list1 = [10, 20]
print(list1)

list1.append(100)
print(list1)

案例:获取scores中所有不及格的分数,以列表的形式返回

scores = [98, 34, 89, 99, 56, 100, 91, 70]  # [34,56]
new_scores = []
for x in scores:
    if x < 60:
        new_scores.append(x)
print(new_scores)

2)列表.insert(下标,元素) - 将指定元素插入到原列表指定下标对应的元素前

nums = [10, 50, 100]
print(nums)  # [10,50,100]
nums.insert(2, 60)
print(nums)  # [10, 50, 60, 100]

2.删 - 删除元素

1) del 列表[下标] - 删除指定下标对应的元素(下标不能越界)

2) 列表.remove(元素) - 删除指定元素(如果对应的元素有多个,只删除最前面的那一个)

3) 列表.pop() - 取出列表最后一个元素并且返回

​ 列表.pop(下标) - 取出列表中指定下标对应的元素并且返回

nums = [10, 50, 100]
del nums[1]
print(nums)  # [10,100]
nums = [10, 50, 100]
nums.remove(50)
print(nums)  # [10,100]
nums = [10, 50, 100, 50, 20]
nums.remove(50)
print(nums)  # [10,100,50,20]
# nums = [10, 50, 100, 50, 20]
# nums.remove(60)   # ValueError: list.remove(x): x not in list

nums = [10, 50, 100, 50, 20]
x = nums.pop()
print(nums, x)     # [10, 50, 100, 50] 20

nums = [10, 50, 100, 50, 20]
x = nums.pop(-2)
print(nums, x)     # [10, 50, 100, 20] 50

3.改 —— 修改某个元素的值

列表[下标] = 值 - 将指定下标对应的元素修改成指定的值

num = [10, 50, 100, 50, 20]
print(nums)
nums[0] = 10000
print(nums)    # [10000, 100, 50, 20]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值