day6 - 列表 - 学习总结

day6 列表

——— review
  1. while

while 条件语句:

​ 循环体

while True:

​ 循环体

​ if 循环结束的条件:

​ break

  1. break、continue
    • continue - 结束一次循环
    • break - 结束整个循环

案例:

#猜数字游戏解法:
from random import randint
#random     (随机模块) ;
#randint(M,N)      -   产生M到N的随机整数;
number = randint(0,100)
count=0
while True:
#提示用户输入数据
    value=int(input('请输入你猜的数字(0~100):'))
    count +=1
#判断输入的数据和产生的随机数之间的大小关系;
#if 循环结束条件:
if value > number:
    print('大了,再小点儿')
elif value < number:
    print('小了,再大点儿')
#else:
    #break
else:
    print('恭喜你,答对了!')
    break
if count>=7:
    print('对不起,你的次数用完了,游戏结束!')
    break
  1. 循环的else

    1)完成的for循环语法:

    for 变量 in 序列:

    ​ 循环体

    else:

    ​ 代码段

    2)完整的while循环语法:

    while 条件语句:

    ​ 循环体

    else:

    ​ 代码段

    注释:else的存在并不会影响原来的循环的执行:

    ​ 如果循环自然死亡,循环结束后会执行else后面的代码段;

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

01 认识列表

1)什么是列表(list)
  • 列表是python中的容器型数据类型;
  • 列表是将 [ ] 作为容器的标志,里面多个数据用逗号隔开:[][][][][][][数据1,数据2,数据3…数据N];
  • 列表是可变的(元素的个数、元素的值和顺序都可以改变 - 支持增、删、改);
  • 列表是有序的(支持下标操作);
  • 补充:
    • 元素 - 容器中每一个独立的数据就是这个容器中的每个元素:如数据1;
    • len ( lenth列表 ) - 获取列表中元素的个数;

空列表:列表中一个数据都没有
list1=[]
print(type(list1),len(list1),list1)    #   <class 'list'>   0   []
任何类型的数据都可以是列表的元素,同一个列表中的元素的类型可以不相同
#  1
list1 = [100]
list2 = [98, 34, 89, 99, 56, 100, 91, 10]
list4 = ['小米', 81, False, 78.9, 'AB']

# 求列表个数
list5 = [10,[20,30]]
print(len(list5))                 #  2

02 查操作

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

1)语法:

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

2)说明:

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

  • [ ]: 固定写法

  • 下标(索引):

    • 下标又叫索引,下标就是列表中元素的位置信息;
    • 列表中的每个元素都有两个下标值,分别是:从前往后是 0,1,2, ,3… , 从后往前是 -1,-2,-3,-4 …
    • 注意:这里的下标不能越界
案例:
movies=['电影1','电影2','电影3','电影4','电影5','电影6','电影7',]
print(movies[0],movies[-3],movies[-1])
# 打印结果:电影1 电影5 电影7
print(movies[7])
#  报错,因为列表中没有下标值为7的数据
2. 遍历 - 一个一个的将列表中的元素全部取一遍
方法1 :

语法: for 变量(元素) in 列表:

​ 循环体

案例:

movies=['电影1','电影2','电影3','电影4','电影5','电影6','电影7',]
for x in movies:
    print('x',x)
# 打印结果:x 电影1  x 电影2  x 电影3  x 电影4  x 电影5  x 电影6x 电影7

练习1:打印scores中所有不及格的分数

scores = [78, 19, 80, 92, 99, 45, 67, 87, 49]

for x in scores:
    if x<60:
        print(x)
# 打印结果:19,45,49

练习2:统计scores中及格的分数的人数

scores = [78, 19, 80, 92, 99, 45, 67, 87, 49]

count=0
for x in scores:
    if x>=60:
        count += 1
print('及格人数:',count)
# 打印结果:及格人数:6
方法2 - 通过遍历下标来遍历列表 xxxxxxx

for 下标 in range(len(列表)):

​ 循环体

movies = ['小森林', '复联3', '肖生克的救赎', '蜘蛛侠', '忍者神龟', '泰坦尼克号', '阿凡达']
# 取出全部的值
# 下标1:0 1 2 3 4 5 6
for x in range(len(movies)):
    print(x,movies[x])

#  下标2:-1 -2 -3 -4 -5 -6 -7
for x in range(-1,-len(movies)-1,-1):
    print(x,movies[x])

# 下标3:6 5 4 3 2 1 0
for x in range(len(movies)-1,-1,-1):
    print(x,movies[x])
方法3
movies = ['小森林', '复联3', '肖生克的救赎', '蜘蛛侠', '忍者神龟', '泰坦尼克号', '阿凡达']

for x,y in enumerate(movies):
    print(x,y)
# 0 小森林   1 复联3   2 肖生克的救赎   3 蜘蛛侠  4 忍者神龟   5 泰坦尼克号   6 阿凡达
3.切片 - 在一个列表中获取部分元素
1)完整语法
列表[ 开始下标:结束下标:步长]
  • 开始下标、结束下标:
    • 用来确定切片的有效范围;
    • 开始下标对应的元素能取到,结束下标对应的元素取不到。
  • 步长( 确定获取方式):
    • 步长为正,从前往后取,步长为负,从后往前取;
    • 绝对值的大小决定是一个一个取还是跳着取。
a. 怎么看切片结果
  • step 1 :先确定结果是否为空(看从开始下标到结束下标对应的方向和步长对应的方向是否一致,如果不一致,为空);

  • step 2 :确定有效范围(开始下标对应的元素能取到,结束下标对应的元素取不到);

  • step 3 :根据步长在有效范围内获取元素:

    • 绝对值为1:一个一个的取

    • 绝对值为2:取1个跳1个再取1个

    • 绝对值为3:取1个跳2个再取1个

    • 绝对值为N,取1个跳N-1再取1个

    案例:

    games = ['英雄联盟', '王者荣耀', '开心消消乐', '炉石传说', '部落冲突', '阴阳师', '刀塔', '原神', '绝地求生']
    print(games[1:-3:-2])    # 空
    print(games[-4:-1:-1])   # 空
    print(games[-6:0:2])     # 空
    print(games[-7:-2:3])    # 开心消消乐 阴阳师
    print(games[2:8:3])      # 开心消消乐 阴阳师
    print(games[3:-1:-2])    # 空
    
b. 通过目标来写切片
  • step 1 :确定开始下标:(将目标数据中第一个元素对应的下标作为开始下标)
  • step 2 :确定步长:
    • 根据获取元素的方向确定正负;
    • 根据取的时候跳过的方式确定绝对值;
  • step 3 : 确定结束下标N:
    • 如果步长为正,结束下标是最后一个元素的后一个元素的下标。
    • 如果步长为负,结束下标是最后一个元素的前一个元素的下标。

案例:

movies = ['小森林', '复联3', '肖生克的救赎', '蜘蛛侠', '忍者神龟', '泰坦尼克号', '阿凡达']
# 取出['复联3','蜘蛛侠','泰坦尼克号']
2)省略语法

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

  • a. 省略步长:列表[开始下标:结束下标] - 相当于步长为1

  • b. 省略开始下标:列表[ : 结束下标 : 步长] - 表示从头开始(头有可能是从前(下标0)开始,也可能是从后(下标-1)开始)

  • c. 省略结束下标:列表[开始下标 : : 步长] - 从开始的位置开始,一直取完

03 列表的增、删、改

1. 增 - 在列表添加元素

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

# 案例1:
list1= [10,20]
print(list1)           #  [10, 20]

list1.append(30)
print(list1)           #  [10, 20, 30]

# 案例2:
#  获取scores中所有不及格的分数,以列表的形式返回
scores = [78, 19, 80, 92, 99, 45, 67, 87, 49]
new_scores=[]  #建立一个新的空列表
for x in scores :
    if x <60:
        new_scores.append(x)   #当有一个不及格分数出现,就在新列表中加一个
print(new_scores)

#[19, 45, 49]

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

nums=[10,50,100]
print(nums)             #   [10, 50, 100]
nums.insert(1,60)
print(nums)             #   [10, 60, 50, 100]
2. 删 - 删除元素

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

2)列表.remove( 元素 ) - 删除指定元素 (如果对应的元素有多个,只会删除最前面的一个; 如果元素不存在,会报错。)

nums=[10,50,100]
del nums[1]
print(nums)                  #   [10, 100]

nums=[10,50,50100]
nums.remove(50)
print(nums)                 #   [10, 50, 100]

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

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

​ 注意:取出表示从列表中取出,但是还在内存中,和删除不一样。取出的元素也可以用一个变量保存,用于返回。

nums=[10,20,30,40,50]
nums.pop() 
print(nums)                    #   [10, 20, 30, 40]

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

x=nums.pop(-2)
print(nums.pop(-2))            #   20
3. 改 - 修改某个元素的值

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

nums=[10,20,30,40,50]
nums[-2] = 5
print(nums)       #    [10, 20, 30, 5, 50]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值