python学习---day4

列表

列表:是能够存储各种数据的容器,列表是可变的。列表是有序的(下标)
列表的容器符号[],list

1.创建一个空列表

list1 = []

2.可变

具有增、删、改功能

增加元素

append():追加

list1.append('python')
list1.append('java')
print(list1)

insert():插入
注:下标:python中下标分为正向下标(0开始)和负向下标(-1开始)

list1.insert(1, 'html')
list1.insert(1, 0)
print(list1)

修改元素

—通过下标改元素
语法:别表[下标] = 新的值

list1[1] = 1
print(list1)

删除元素

  • del:删除某个元素(del 列表[下标])
del list1[1]
print(list1)
  • remove:移除某个元素(彻底删除)
list1.remove('java')
print(list1)
  • pop:移除某个元素(删除文件后知道删除的是谁)
list1.pop(0)
print(list1)
  • clear:将列表清空
list1.clear()
print(list1)

下标和切片

下标

每个元素在列表中的位置

  • 正向下标,从0开始
  • 负向下标,从-1开始
list1 = ['蜘蛛侠', '环太平洋', '海王', '复仇者联盟']
# list1 = [0, 1, 2, 3]
# list1 = [-4, -3, -2, -1]

例:

# 海王
print(list1[2], list1[-2])

:下标不能越界——IndexError: list index out of range

切片

左闭右开区间,从原来的容器中提取元素组成新的容器

注:切片可以越界,写出的超出部分获取不到元素
变量[M:N:step]
M:起始范围(不写M,默认从头开始取)
N:结束范围(不写N,默认写到尾部)
step:步长(step = 1,可以不写)

list1 = ['蜘蛛侠', '环太平洋', '海王', '复仇者联盟']
print(list1[1:3])
print(list1[0:5:2])
print(list1[1:4:2])
print(list1[:4:2])
print(list1[::2])
print(list1[:])

注意:

  • 起始范围和结束范围不写的时候,':‘必须存在,步长不写时,’:'不用写
list1 = ['蜘蛛侠', '环太平洋', '海王', '复仇者联盟']
print(list1[:])
  • 步长控制获取的元素,每间隔步长-1个元素获取一个元素(当前元素获取完+步长=下一个要获取的元素)
list1 = ['蜘蛛侠', '环太平洋', '海王', '复仇者联盟']
print(list1[::-1])
  • M和N必须同符号:step<0,M<N;step>0,M>N
list1 = ['蜘蛛侠', '环太平洋', '海王', '复仇者联盟']
print(list1[4:1:-1])
  • 正向下标和负向下标可以组合使用
list1 = ['蜘蛛侠', '环太平洋', '海王', '复仇者联盟']
print(list1[0:-1])

练习

movies = ['阿甘正传', '肖申克的救赎', '霸王别姬', '三傻大闹宝莱坞', '环太平洋', '猿人泰山']
#  a.获取['阿甘正传'、'霸王别姬'、'环太平洋']
print(movies[::2])
#  b.获取['肖申克的救赎'、'环太平洋']
print(movies[1::3])
#  c.获取['环太平洋'、'霸王别姬'、'阿甘正传']
print(movies[-2::-2])
#  d.获取['猿人泰山'、'阿甘正传']
print(movies[::-5])
#  e.获取['霸王别姬']
print(movies[2:3])
# //或者
a = []
a.append(movies[2])
print(a)
# //或者
b = [movies[2]]
print(b)

列表的遍历

循环(遍历)

1.直接遍历

for i in movies:
    print(i)

2.间接遍历

len()——>能够查看容器的长度

print(len(movies))
for i in range(len(movies)):
    print(movies[i])
# 输出为:
# 6
# 阿甘正传
# 肖申克的救赎
# 霸王别姬
# 三傻大闹宝莱坞
# 环太平洋
# 猿人泰山

3.enumerate()

将列表转换为一个可迭代对象(能够使用遍历/for循环)

print(enumerate(movies))  #  ---> <enumerate object at 0x0000018E43340380>
for i in enumerate(movies):
    print(i)
# 输出为:
# (0, '阿甘正传')
# (1, '肖申克的救赎')
# (2, '霸王别姬')
# (3, '三傻大闹宝莱坞')
# (4, '环太平洋')
# (5, '猿人泰山')

练习:

将下方列表中的元素从小到大排序

list1 = [23, 56, 10, 55, 76, 100, 30]
冒泡排序:两两比较,交换位置

[23, 56, 10, 55, 76, 100, 30]
[23, 10, 56, 55, 76, 100, 30]
[23, 10, 55, 56, 76, 100, 30]
[23, 10, 55, 56, 76, 100, 30]
[23, 10, 55, 56, 76, 100, 30]
[2 3, 10, 55, 56, 76, 30, 100]

[23, 10, 55, 56, 76, 30, 100]
[10, 23, 55, 56, 76, 30, 100]
[10, 23, 55, 56, 30, 76, 100]

[10, 23, 55, 56, 30, 76, 100]
[10, 23, 55, 30, 56, 76, 100]

[10, 23, 55, 30, 56, 76, 100]
[10, 23, 30, 55, 56, 76, 100]

list1 = [23, 56, 10, 55, 76, 100, 30]
# 每趟排序,排序次数+1 = 本趟排序的元素个数
# 外层循环控制趟数:每次比较选出最大值,最后一个元素不参与排序,减少一个元素
for n in range(1, len(list1)):
    print(f'这是第{n}趟排序')
    print('本次排序开始前:', list1)
    # 外层循环一次减少一个元素,循环n次减少n个元素
    for m in range(0, len(list1) - n):
        print('每次排序的两个数为:', list1[m], list1[m+1] )
        if list1[m] > list1[m+1]:
            list1[m], list1[m+1] = list1[m+1], list1[m]
            # 打印每一趟排序结果
        print(list1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值