栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

day5列表总结

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day5列表总结

列表 什么是列表(list)

1)列表是容器型数据类型(可以同时保存多个数据);
2)将[]作为容器的标志,里面多个元素(一个容器中每个独立的数据就是元素)用逗号隔开: [元素1, 元素2, 元素3,…]
3)列表是可变的(可变指的是元素的个数、元素的值和元素的顺序可变) - 列表支持增删改
列表是有序的 - 列表支持下标操作

4)列表的元素:任何类型的数据都可以作为列表的元素

1. 空列表
list1 = []
print(list1)
2.列表中的元素的类型
  • 同一个列表中中的元素的类型可以相同,可以不同也可以嵌套
list2 = [29, 34, 56, 67]
print(list2)

list3 = [29, 2.3, 'abc', True, [10, 2], {'a': 10}]
print(list3)

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

  • 列表是有序的
print([10, 20, 30] == [10, 30, 20])     # False
3.获取单个元素

语法: 列表[下标] - 获取指定列表中指定下标对应的元素

说明:
1)列表 - 可以是具体某个列表,也可以是保存列表的变量
2)[] - 固定写法
3)下标 - 整数,下标又叫索引,是元素在有序序列中的位置信息。
python中元素对应的下标有两种:1.从前往后从0开始不断增加 2.从后往前从-1开始不断减小

注意:下标不能越界

games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']
print(games[1], games[-6])

print(['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生'][1])

print(games[-1])

# 注意:下标不能越界
# print(games[100])     # IndexError: list index out of range
4.获取部分元素 - 切片

1)完整语法:
列表[开始下标:结束下标:步长]

2)获取切片结果过程:
第一步:确定结果是否为空:看步长对应的方向和开始下标到结束下标对应的方向是否一致,如果不一致,切片的结果一定是空
第二步:确定有效范围:从开始下标对应的元素到结束下标对应的元素就是有效范围,有效范围内,结束下标对应的元素取不到
[开始下标, 结束下标)
第三步:获取元素:步长的正负确定获取方向; 步长绝对值确定获取的时候是否跳着取;
如果绝对值为1,表示一个一个的取;绝对值为2,表示取一个跳过一个;绝对值为3,表示取一个跳过2个

3)写切片表达式获取指定的结果
第一步:确定开始下标:看结果中第一个元素在原列表中的下标
第二步:确定步长:看获取元素的方向来确定正负; 看取值的时候跳过的情况确定绝对值
第三步:确定结束下标:[开始下标, 结束下标)对应的范围能够包含所有的已经获取到的元素

games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']

print(games[1:-1:2])       # ['王者荣耀', '炉石传说', '原神']
print(games[1:-2:-2])      # []
print(games[4:0:1])        # []
print(games[2:-2:1])        # ['开心消消乐', '炉石传说', '部落冲突']
print(games[6:-6:-2])       # ['绝地求生', '部落冲突', '开心消消乐']

4)切片省略写法

  1. 省略步长: 列表[开始下标:结束下标] == 列表[开始下标:结束下标:1]
    省略步长的时候,步长为1

  2. 省略开始下标: 列表[:结束下标:步长]、列表[:结束下标]
    如果步长为正,从第一个元素开始往后取;如果步长为负,从最后一个开始往前取

  3. 省略结束下标:列表[开始下标::步长]、列表[开始下标:]
    如果步长为正,从开始下标开始往后取,一直取到最后一个元素;如果步长为负,从开始下标开始往前取,取到第一个元素为止

movies = ['肖申克的救赎', '双城之战', '你的名字', '海上钢琴师', '风雨哈佛路', '当幸福来敲门', '乡村老尸', '咒怨']
# 省略步长
print(movies[2:5])          # ['你的名字', '海上钢琴师', '风雨哈佛路']
print(movies[1:-2])         # ['双城之战', '你的名字', '海上钢琴师', '风雨哈佛路', '当幸福来敲门']
print(movies[-2:2])         # []

# 省略开始下标
print(movies[:3])           # ['肖申克的救赎', '双城之战', '你的名字']
print(movies[:3:-1])        # ['咒怨', '乡村老尸', '当幸福来敲门', '风雨哈佛路']
print(movies[:-2:-2])       # ['咒怨']

# 省略结束下标
print(movies[2:])           # ['你的名字', '海上钢琴师', '风雨哈佛路', '当幸福来敲门', '乡村老尸', '咒怨']
print(movies[3::2])         # ['海上钢琴师', '当幸福来敲门', '咒怨']
print(movies[3::-2])        # ['海上钢琴师', '双城之战']

print(movies[::2])
print(movies[::-2])
5.遍历列表

将列表中的元素一个一个的全部取完

方法1 - 直接获取元素
for 元素 in 列表:
循环体(变量依次取到的就是列表中的元素)

方法2 - 通过遍历下标来遍历元素
for 下标 in range(len(列表)):
循环体(变量取到的是每个元素的下标, 列表[下标]就可以获取到元素)

方法3 - 同时获取下标和元素
for 下标,元素 in enumerate(列表):
循环体(变量1依次获取到的是每个元素的下标,变量2依次获取到的时候每个元素)

print('----------------------------------------华丽的分割线-----------------------------------')


movies = ['肖申克的救赎', '双城之战', '你的名字', '海上钢琴师', '风雨哈佛路', '当幸福来敲门', '乡村老尸', '咒怨']
for x in movies:
    print(x)


print('----------------------------------------华丽的分割线-----------------------------------')
nums = [28, 73, 55, 60, 98, 21]
# 练习1:求nums中所有元素的和
s = 0
for x in nums:
    s += x
print(s)

print('----------------------------------------华丽的分割线-----------------------------------')
# 练习2:统计nums中奇数的个数
count = 0
for x in nums:
    if x % 2:
        count += 1
print(count)


print('----------------------------------------遍历下标-----------------------------------')
movies = ['肖申克的救赎', '双城之战', '你的名字', '海上钢琴师', '风雨哈佛路', '当幸福来敲门', '乡村老尸', '咒怨']
for index in range(len(movies)):
    print(index, movies[index])

print('----------------------------------------华丽的分割线-----------------------------------')

# range(M,N,step)   -  [M, N), 步长为step
# range(8-1, -1, -1)  -> range(7, -8, -1)
# (7, 6, 5, 4, 3, 2, 1, 0), -1
for index in range(len(movies)-1, -1, -1):
    print(index, movies[index])

print('----------------------------------------华丽的分割线-----------------------------------')
# (-1, -2, -3, -4, -5, -6, -7, -8), -9
for index in range(-1, -len(movies)-1, -1):
    print(index, movies[index])

print('----------------------------------------同时遍历下标和元素-----------------------------------')
movies = ['肖申克的救赎', '双城之战', '你的名字', '海上钢琴师', '风雨哈佛路', '当幸福来敲门', '乡村老尸', '咒怨']
for index, item in enumerate(movies):
    print(index, item)
6.新增
  1. 列表.append(元素) - 在列表的最后添加指定元素
  2. 列表.insert(下标, 元素) - 在列表中指定下标对应的元素前插入指定元素
nums = [10, 20]
print(nums)

nums.append(100)
print(nums)     # [10, 20, 100]

nums.append(200)
print(nums)     # [10, 20, 100, 200]

nums = [10, 20]
nums.append([100, 200])
print(nums)     # [10, 20, [100, 200]]


nums = [10, 20, 30]
print(nums)     # [10, 20, 30]
nums.insert(1, 100)
print(nums)     # [10, 100, 20, 30]

nums.insert(0, 200)
print(nums)     # [200, 10, 100, 20, 30]

nums.insert(len(nums), 300)
print(nums)
7.删除

del 列表[下标] - 删除列表中指定下标对应的元素
列表.remove(元素) - 删除列表中指定元素
列表.pop() - 取出列表中最后一个元素
列表.pop(下标) - 取出列表中指定下标对应的元素

示例:

games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']
del games[2]
print(games)        # ['英雄联盟', '王者荣耀', '炉石传说', '部落冲突', '原神', '绝地求生']


games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']
del games[-1]
print(games)        # ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神']


games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']
games.remove('开心消消乐')
print(games)    # ['英雄联盟', '王者荣耀', '炉石传说', '部落冲突', '原神', '绝地求生']

games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '开心消消乐', '原神', '绝地求生', '开心消消乐']
games.remove('开心消消乐')
print(games)        # ['英雄联盟', '王者荣耀', '炉石传说', '部落冲突', '开心消消乐', '原神', '绝地求生', '开心消消乐']


# games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']
# games.remove('红警')
# print(games)        # ValueError: list.remove(x): x not in list


games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']
x = games.pop()
print(games, x)        # ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神'] 绝地求生

games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']
x = games.pop(1)
print(games, x)        # ['英雄联盟', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生'] 王者荣耀

# 遍历删除元素
# 两种均可:(-长度 ~ 0)、(len-1 ~ -1),原则是删了一个后下一个的下标不变(方向相反)
# -6, -5, -4, -3, -2, -1
scores = [98, 79, 45, 55, 72, 64]
for index in range(-len(scores), 0, 1):
    if scores[index] < 60:
        del scores[index]

print(scores)       # [98, 79, 72, 64]


# 5, 4, 3, 2, 1, 0
scores = [98, 79, 45, 55, 72, 64]
for index in range(len(scores)-1, -1, -1):
    if scores[index] < 60:
        del scores[index]
print(scores)       # [98, 79, 72, 64]

8.改

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

games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']
games[1] = '红色警戒'
print(games)        # ['英雄联盟', '红色警戒', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']
9. in和not in

元素 in 列表 - 判断列表中是否存在指定元素,如果存在就返回True,否则返回False

games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']
print('绝地求生' in games)      # True
print('红色警戒' in games)      # False

print(10 in [10, 20, 30])    # True
print([10, 20] in [10, 20, 30])    # False
print([10, 20] in [[10, 20], 30])   # True
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/822787.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号