美文网首页
2018-12-29

2018-12-29

作者: 百而所思 | 来源:发表于2018-12-29 15:30 被阅读0次

    一、 了解列表

    1、 什么是列表(list)

    列表是python提供的容器型数据类型。可变且有序。
    可变 - 列表中的每个元素的值可变,列表的长度可变,列表中元素的顺序可变
    有序 - 每个元素可以通过下标来确定位置
    列表的字面量:通过‘[]’括起来,里面有多个元素,每个元素用逗号隔开
    注意:列表元素的类型可以是python支持的所有数据列型,并且同一个列表中不同元素的类型可以不一样

    list1 = [12, 12.23, 'wqe1', True, [1234], {'a': 10}, lambda x: 2 * x]
    print(len(list1))
    

    2、 获取列表元素(和字符串获取字符的语法一样)

    a. 获取单个元素
    列表[下标] - 获取列表中指定下标对应的元素
    b. 获取部分元素(切片)
    列表[开始下标:结束下标:步长]
    c. 一个一个的取出所有元素(遍历)
    可以使用for循环直接遍历列表拿到每个元素(操作元素的时候和下标无关)
    通过遍历列表元素对应的下标来遍历列表元素(操作元素的时候和下标有关)

    直接遍历

    for item in list1:
        print(item)
    # 通过下标遍历
    for index in range(len(list1)):
        print(index, list1[index])
    

    统计一个班的学生的成绩,存到一个列表中。求整个班的学生的平均成绩

    s = [23, 34., 31, 57, 9, 87, 87, 56, 98]
    for x in s:
        x += x
    print(x/len(s))
    

    二、更新列表(增删改查)

    1、 增(添加列表元素)

    a. append
    列表.append(元素) - 在指定的列表的最后添加指定的元素,此操作不会产生新的列表
    b. insert
    列表.insert(下标,元素) - 在指定的下标前插入指定的元素

    L1 = [1, 2, 3]
    L1.append(4)
    print(L1)
    L1.insert(0, 0)
    print(L1)
    #[1, 2, 3, 4]
    #[0, 1, 2, 3, 4]
    

    2、 删(删除元素)
    a. del
    del 列表[下标] - 删除列表中指定列表的元素
    注意:python中del可以删除任何数据
    这儿的下标不能越界
    b. remove
    列表.remove(元素) - 删除列表中指定的元素,若有多个将删除第一个。
    注意:被删除的元素在列表中必须是存在的
    c. pop
    列表.pop() - 将列表中最后一个元素从列表中取出
    列表.pop(下标) - 将列表中指定下标对应的元素从列表中取出

    • 坑一:遍历列表删除部分元素,删不全。---遍历的时候对原列表切片(列表[:])

    • 坑二:通过下标遍历列表,删除元素的时候,下标越界和元素获取不全

      • 解决办法:下标对应的元素需要删除,下标值不动;不需要删除的下标加1

    用一个列表统计一个班的学生年龄(控制台不断输入年龄值,知道输入end为止),然后删除所有小于18岁的年龄

    n = input('输入年龄,end结束:')
    l = []
    while n != 'end':
        l.append(int(n))
        n = input('输入年龄,end结束:')
    c = []
    for i in l:
        if i <= 18:
            c.append(i)
    for i in c:
        l.remove(i)
    print(l)
    

    坑一:

    n = input('输入年龄,end结束:')
    l = []
    while n != 'end':
        l.append((int(n)))
        n = input('输入年龄,end结束:')
    for i in l[:]:
        if i < 18:
            l.remove(i)
    print(l)
    

    坑二:

    n = input('输入年龄,end结束:')
    l = []
    while n != 'end':
        l.append((int(n)))
        n = input('输入年龄,end结束:')
    i = 0
    while i != len(l):
        if l[i] < 18:
            l.pop(i)
            continue
        i += 1
    print(l)
    

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

    一个列表中保存到的是学生的成绩,要求将成绩小于60的改成下一个班见,并且统计下一个班见的总数

    scores = [90, 78, 50, 77, 23, 82, 45]
    i = 0
    for x in range(len(scores)):
        if scores[x] < 60:
            i += 1
            scores[x] = '下一个班见'
    print(scores, i)
    

    三、 list的相关方法

    1、 相关运算:‘+ , * ’

    a. 数学运算
    列表1 + 列表2 - 将两个列表中的元素合并在一起产生一个新的列表
    列表 * N - 列表中的元素重复N次,产生一个新的列表
    b. 支持比较运算
    比较大小的原理和比较字符串类似

    2、 in / not in

    元素 in 列表 - 判断列表中是否有指定的元素

    3、 len

    len(列表) - 获取列表中元素的个数

    4、 list

    list(数据) - 将其他数据转换成列表;只有序列才可以转换成列表
    转换的时候就是将序列中所有的元素转换成列表的元素
    不能用python提供的类型的名字来命名。

    5、 序列的其他方法

    max(序列)- 获取序列中值最大的元素
    min(序列)- 获取序列中值最小的元素
    sum(序列)- 获取序列中所有元素的和
    注意:以上是哪个方法,要求序列中的元素类型必须一致,并且该类型支持比较和加法运算

    L1 = [1, 2, 3]
    L2 = ['a', 'd']
    print(L1 + L2)
    print(L1 * 2)
    print([10, 2] > [10])
    print([1, 2] in [1, 2, 3])
    print([1, 2] in [[1, 2], 3])
    print(max(L1))
    print(min(L1))
    print(sum(L1))
    

    相关文章

      网友评论

          本文标题:2018-12-29

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