12-30list

作者: 生命的怒放 | 来源:发表于2018-12-30 14:41 被阅读0次

    list属性与应用

    一。什么是列表(list)

    列表是python提供的容器型数据类型。可变并且有序的。
    可变 - 列表中的每个元素的值可变,列表的长度可变,列表中元素的顺序可变。(支持增删改)
    有序 - 每个元素可以通过下标来确定位置

    1.列表的字面量: 通过[]括起来,里面有多个元素,每个元素用逗号隔开。

    [1,2,3]
    [10 ,‘asd’,True]
    [] --空列表

    注意:列表元素的类型可以是任何pyton支持的数据类型,并且同一列表中不同元素的类型可以不一样

    scores = [90,23,68,100]
    print(scores)
    #任何类型的数据都可以作为列表的元素。(这段有7个元素。)
    list1 = [90,10.22,'qwer',True,[1,2,3],{'a':10},lambda x: 2*x]
    print(len(list1))
    list2 = [
        90,
        10.22,
        [1,2,3],
    ]
    a = 10
    list3 = [a,20]
    

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

    a. 获取单个元素

    列表[下标] 获取列表中指定下标的元素,下标不能越界。

    list1 = [12,12,41]
    print(list1[0])
    
    b.获取部分元素(切片)- 切片结果是列表。

    列表[开始下标:结束下标:步长]
    注意:取不到的时候结果是空列表[]

    c.一个一个的取出所有元素(遍历)

    可以使用for循环直接遍历列表拿到每个元素;(操作元素的时候和下标无关)
    可以通过遍历列表元素对应的下标来遍历列表元素;(操作元素的时候和下标有关)

    #直接遍历
    moves = ['小黄人' ,'倩女幽魂','夏洛特烦恼','仙剑']
    for item in moves:
        print(item)
    #通过遍历下标遍历
    for index in range(len(moves)):
        print('下标:',index)
    #练习:统计一个班学生的成绩,存到一个列表中。求整个班的学生的平均成绩。
    #[90,89,80,70,98,67]
    chenji = 0
    pijun = 0
    zlist1 = [90,89,80,70,98,67]
    for num in zlist1:
        chenji +=num
    pijun = chenji /len(zlist1)
    print(pijun)
    

    二。list的增删改

    1.增(添加列表元素)

    a.append

    列表.append(元素) - 在指定的列表的最后添加指定的元素。(注意:这个操作不会产生新的列表)

    b.insert 插入

    列表.insert(下标, 元素) - 在指定的下标前插入指定的元素。

    animi = ['海贼王','火影忍者','一人之下']
    animi.append('秦时明月')
    print(animi)
    animi. insert(2,'犬夜叉')  #插入到下标的前。
    

    2.删(删除元素)

    a.del

    del 列表[下标] - 删除列表中指定下标对应的元素。
    注意:del是python的关键字,可以用它删除任何数据。 这儿的下标不能越界,
    ######b.remove (译:移除)
    列表.remove(元素) - 删除列表中第一个指定元素。
    注意:被删除的元素在列表中必须是存在的。不存在会报错。

    c.pop

    列表.pop() - 将列表中最后一个元素从列表中取出,会返回取出来的元素
    列表.pop(下标) -将列表中指定下标对应的元素从列表中取出,会返回取出来的元素

    del animi[-2]    #不能越界,报错。
    print(animi)
    animi.remove('犬夜叉')
    #3.pop
    animi1 = ['海贼王','火影忍者','一人之下']
    num = animi1.pop()
    print(animi1)
    print('22:',num)
    num = animi1.pop(0)
    print(animi1)
    print('22:',num)
    

    练习:用一个列表统计一个班的学生年龄(控制台不断输入,直到输入end结束)删除年龄小于18岁的。
    ages = [12,13,18,20] 第一次取下标0,删除后,开始取下标1. 但是此时列表已经删除了一个,原本下标1的元素下标变成了0

    坑一: 遍历列表删除部分元素,删不全 --遍历时对原列表切片。
    ages = [12,13,18,20]
    temp = ages[:]  #切片列表,会有一个新的列表。
    for age in ages:
        if age < 18:
            ages.remove(age)
    print(ages)
    #将小于18岁的取出来,存到一个新的列表中
    ages = [12,13,20,18,30,10]
    new_ages = []  #保存被删除的元素
    index = 0
    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)
    
    坑二:通过下标遍历列表,删除元素的时候,下标越界和元素获取不全--
    解决办法:下标对应的元素需要删除,下标值不动;不会删除下标加1。

    3.改(修改元素的值)

    列表[下标] = 新值 -- 修改列表中指定下标对应的值。

    list1 = [1,2,3]
    list1[0] = 'abc'
    print(list1)
    #练习:有一个列表中保存的是学生的成绩,要求将成绩小于60分的改成‘下一个班见’,
    #并且下一个班见的人数。
    #scores = [90,78,50,77,23,82,45]
    scores = [90,78,50,77,23,82,45]
    count = 0
    for index in range(len(scores)):
        if scores[index] < 60:
            scores[index] = '下一个班见'
            count += 1
    print(scores, count)
    

    三。list运算

    1.相关运算:+,*

    a.数学运算

    列表1 + 列表2 --将两个列表中的元素合并在一起,产生一个新的列表。
    列表1 * N --列表中的元素重复N次,产生一个新的列表。

    b.支持比较运算

    比较大小的原理和字符串类似。

    print([1,2,3] + ['a','s','f',])
    

    2.in /not in

    元素 in 列表 --判断列表中是否存在指定的元素。

    print([1,2] in [1,2,3])   #False
    print([1,2] in [[1,2],1,2,3]) #True
    print('abc' in [10, 'abc',True]) #True
    

    3.len

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

    4.list

    list(数据) --将其他数据转换成列表;只有序列才可以转换成列表,所有的序列都可以转换成列表。转换的时候就是将序列中所有的元素转换成列表的元素。
    注意:不能用python给我们提供的类型的名字来命名,否则会有隐患。

    list1 = list('hello')
    print(list1)    #把每个字符单独列成一个元素。
    list2 = list(range(11,20))
    print(list2)
    

    5.序列其他方法

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

    print(max([19,12,12,33,45,0.4]))
    print(min([19,12,12,33,45,0.4]))
    print(sum([19,12,12,33,45,0.4]))
    

    相关文章

      网友评论

          本文标题:12-30list

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