python中列表

列表

什么是列表(list)

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

空列表
list1 = []

列表中元素的类型
同一个列表中的元素可以相同
同一个列表中的元素可以不相同(一个列表可以作为另外一个列表的元素)

list2 = [1, '三十七', 3.14]
print(list2)

列表是有序的

print([1, 2, 3] == [3, 2, 1])

集合无序

print({123, 123, 333} == {333, 123, 123})
获取单个元素

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

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

games = ['lol', 'pubg', 'csgo', 'glory of king', 'dnf']
print(games[-2])

注意:下标不能越界

获取部分元素 - 切片

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

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

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

示例:

print(games[1:-1:2])  # ['pubg', 'glory of king']
print(games[1:-2:-2])  # 空,开始和步长方向不一致

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

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

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

切片省略写法

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

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])  # ['小鬼魔鞋', '咒怨']

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

print(movies[-2::-3])  # ['乡村老尸', '海上钢琴师', '肖申克的救赎']
print(movies[3:6])  # ['海上钢琴师', '风雨哈佛路', '当幸福来敲门']
print(movies[:-3])  # ['肖申克的救赎', '双城之战', '你的名字', '海上钢琴师', '风雨哈佛路']
print(movies[:4:2])  # ['肖申克的救赎', '你的名字']
print(movies[-4::2])  # ['风雨哈佛路', '乡村老尸']
print(movies[1::4])  # ['双城之战', '当幸福来敲门']
print(movies[::3])  # ['肖申克的救赎', '海上钢琴师', '乡村老尸']
遍历 - 将列表中的元素一个一个的全部取完

方法1: - 直接获取元素
for 变量 in 列表:
循环体(变量依次取到的就是列表中的元素)
方法2: - 通过遍历下标来遍历元素
for 变量 in range(len(列表)):
循环体(变量取到的是每个元素的下标,列表[下标],可以获取到元素)
方法3: - 同时获取下标和元素
for 变量1,变量2 in enumerate(列表):
循环体(变量1依次获取到的是每个元素的下标,变量2依次获取到的是每个元素)

示例:

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

# 练习:求num中所有元素的和
# 练习:统计num中所有奇数的和
nums = [98, 58, 65, 72, 15, 65, 30, 70]
s = 0
count = 0
for i in nums:
    s += i
    if i % 2 != 0:
        count += 1
print(s, count)  # 473 3


print('-----------------------遍历下标-----------------------')
for x in range(len(movies)):
    print(x,movies[x])
for x in range(len(movies)-1,-1,-1):
    print(x,movies[x])

print('---------------------同时变历下标和元素---------------------')
for a,b in enumerate(movies):
    print(a,b)

1.列表.append(元素) - 在列表最后添加指定元素
2.列表.insert(下标,元素) - 在列表的指定下标对应的元素插入指定元素

示例:

nums = [10, 20]
print(nums)
nums.append(100)
print(nums)
nums.append(200)
print(nums)
nums.insert(0, 100)
print(nums)
删除

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

示例:

print(nums)
del nums[1]
print(nums)
nums.remove(20)
print(nums)

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

示例:

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

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

示例:

games = ['诛仙', '英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '原神', '绝地求生']
print('绝地求生' in games)
print(10 in [10, 20, 30])
print([10, 20] in [10, 20, 30])
print([10, 20] in [[10, 20], 20])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值