美文网首页
day-06 list总结

day-06 list总结

作者: 哗啦噼里啪啦 | 来源:发表于2018-12-29 15:41 被阅读0次

    1.什么是列表(list):
    列表是python提供的容器形数据类型。

    可变的 --- 列表中的每个元素的值可变,列表中元素的顺序可变,列表的长度可变
    有序的 --- 每个元素可以通过下标来确定位置

    2.列表的字面量:通过[]括起来,里面有多个元素,每个元素用逗号隔开
    例如:['qwe',12,True] []
    注意:python中列表元素类型可以是任何python支持的数据类型,并且同一个列表中,所有元素的类型可以不一样

    scores = [90,80,89,99]
    print(scores)
    # 所有的数据类型都可以作为列表元素
    list1 = [12,'asd',12.3,True,[1,2,3],{'a':2,'b':3},lambda x:x*2]
    print(len(list1))
    

    获取列表元素
    a.获取单个元素
    列表[下标]---- 0 到 长度减一;-1 到负的长度

    
    list1=[10,20,30]
    print(list1[0],list1[-1])   # 10      30
    

    获取部分元素: -- 切片结果都是产生一个新列表,取不到的时候是一个空列表
    列表[开始下标:结束下标:步长]
    列表[::]

    moves = ['毒液','功夫熊猫','肖申克的救赎','这个杀手不太冷','拯救大兵瑞恩']
    print(moves[1:3],moves[1:5:2],moves[3:-3:-1])
    
    

    遍历列表:
    1.使用for循环直接拿到所有元素
    2.通过遍历下标来获取所有元素

    注意:1,通过遍历列表去删除某些元素删不完全的时候,就通过切片原列表产生一个新列表,
              然后遍历新列表,去删除原来列表的元素
    for item in moves:
        print(item)
    for index in range(len(moves)):
        print(moves[index])
    num = len(moves)-1   # 倒叙列表
    while num >= 0 :
        print(moves[num])
        num -= 1
    
    # 统计一个班的成绩,存在列表里面,求列表中整个班的成绩
    socers=[90,80,70,60,50,60,70,80,88]
    sum = 0
    for item in socers:
        sum += item
    print("总成绩是%d,平均值是%d"%(sum,sum/len(socers)))
    

    列表增删该
    注意:1,通过遍历列表去删除某些元素删不完全的时候,就通过切片原列表产生一个新列表,
    然后遍历新列表,去删除原来列表的元素

    1.增--添加列表元素  (不会产生一个新的列表,而是在原来的列表基础上添加)
     a. append() --- 
     方法:
         列表.append(元素) ---- 在指定列表最后添加指定元素
     b. insert() ----
     方法:
        列表.insert(下标,元素)---- 在指定的下标前去插入指定元素
    
    animes = ['海贼王','火影','一人之下','秦时明月','画江湖']
    
    animes.append('一拳超人')
    print(animes)  #  ['海贼王', '火影', '一人之下', '秦时明月', '画江湖', '一拳超人']
    
    animes.insert(2,'犬夜叉')
    print(animes)  #['海贼王', '火影', '犬夜叉', '一人之下', '秦时明月', '画江湖', '一拳超人']
    
    animes.insert(0,'进击的巨人')
    print(animes)  #['进击的巨人', '海贼王', '火影', '犬夜叉', '一人之下', '秦时明月', '画江湖', '一拳超人']
    

    2.删除元素
    a. del --- 注意:关键字用它可以删除任何数据
    del 列表[下标] -- 删除指定列表指定下标所对应的元素,下标不能越界!!!
    b.remove -- 注意:被删除的元素在列表中必须是存在的
    列表.remove(元素) -- 删除指定列表中的指定的第一个元素
    c. pop -- 会返回取出来的元素
    c.1: 列表.pop() --- 将列表中的最后一个元素从列表中取出

    c.2: 列表.pop(下标) -- 将列表中指定的元素从列表中取出
    
    animes = ['进击的巨人', '海贼王','海贼王' ,'火影', '犬夜叉', '一人之下', '秦时明月', '画江湖', '一拳超人']
    del animes[-2]
    print(animes)  # ['进击的巨人', '海贼王', '海贼王', '火影', '犬夜叉', '一人之下', '秦时明月', '一拳超人']
    
    animes.remove('海贼王')
    print(animes) # ['进击的巨人', '海贼王', '火影', '犬夜叉', '一人之下', '秦时明月', '一拳超人']
    
    del_item=animes.pop()
    print(animes)  #['进击的巨人', '海贼王', '火影', '犬夜叉', '一人之下', '秦时明月']
    print(del_item)  #'一拳超人'
    
    animes.pop(0)
    print(animes)  #['海贼王', '火影', '犬夜叉', '一人之下', '秦时明月']
    

    用一个列表统计学生的年龄,直到输入end为止,然后删除所有小于18的年龄

    stu_message=[]
    age = input('输入年龄')
    while age !='end':
        stu_message.append(int(age))
         age = input('输入年龄')
    print(stu_message)
    tem = stu_message[:]
    for item in tem:
         if item < 18 :
            stu_message.remove(item)
    print(stu_message)
    

    通过下标删除

    ages=[12,34,56,78,13,14,18,19]
    index = 0
    new_ages=[]
    while index < len(ages):
        age = ages[index]
        if age < 18 :
            del_item=ages.pop(index)
            new_ages.append(del_item)
        else:
            index += 1
    print(ages,new_ages)
    

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

    list1=[1,2,3,4]
    list1[0]='帅哥'
    print(list1)
    

    一个列表保存的是学生成绩,将列表中成绩小于60分的改成下一个班见,并统计有多少个学生留级。

    socers=[55,56,57,58,59,60,61,62,63,64,65,66]
    sum=0
    for index in range(len(socers)):
        if socers[index] < 60 :
            socers[index]='留级'
    print(socers)
    for value in socers:
        if value == '留级':
            sum += 1
    print(sum)
    

    列表相关运算:数学运算:+ *,比较运算

    a.加法
    列表1+列表2 -- 将两个列表的元素合并在一起产生一个新的列表,
    b.乘法
    列表1*n --- 将列表中的元素重复n次产生一个新的列表

    2.比较运算 --比较大小的时候列表第一个元素类型必须一样

    print([1,2,3]+['a','b','c'])  #[1, 2, 3, 'a', 'b', 'c']
    print([1,2,3]*5)   #[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
    

    in 和 not in
    a.元素 in 列表 -- 判断元素是否在指定的列表里面

    len(列表) -- 统计列表中元素的个数
    list(列表) -- 将其他数据转换成列表(只有序列才能转换成列表)
    就是将所有的元素转换成列表的元素
    注意:不能用python提供的类型名来命名

    dict1={'a':1,'b':2,'哈哈':1}
    str1='asdad'
    print(list(dict1),list(str1))
    
    

    序列的其他方法--(要求序列中的元素类型必须一致,并且这个类型支持比较和加法运算)
    max(序列)---获取序列中值最大的元素
    min(序列)---获取序列中值最大的元素
    sum(序列)---求序列中元素的和

    print(sum(range(1,1001)))#500500
    print(max([23,42,43,23,42,34,234,32,4,234,23,4,5,3,45,34,2,341,1,3,12])) #341
    print(min([23,42,43,23,42,34,234,32,4,234,23,4,5,3,45,34,2,341,1,3,12])) # 1
    print(sum([23,42,43,23,42,34,234,32,4,234,23,4,5,3,45,34,2,341,1,3,12]))#1184
    

    相关文章

      网友评论

          本文标题:day-06 list总结

          本文链接:https://www.haomeiwen.com/subject/mgfplqtx.html