美文网首页
2018-08-27-day06-列表和元组

2018-08-27-day06-列表和元组

作者: oxd001 | 来源:发表于2018-08-27 17:12 被阅读0次

    1.list列表

    列表是python中的容器类型,有序的,可变的容器(可变指的是列表中的元素和元素的位置、个数可变)元素:值的是列表中的每一个内容
    有序 -> 可以通过下标来获取元素
    可变 -> 可以进行增删改(查)

    2.列表的声明:声明了一个列表,列表中有5个元素

    scores=[90,80,70,60,50]

    scores = [90,80,70,60,50]
    print(scores)
    

    声明了一个列表,列表中有三个元素:一个列表中元素的类型可以不一样

    person = ['张三',24,'男']
    print(person)
    

    声明一个空的列表

    person = []
    

    将其他的数据类型转换成列表,序列可以转换成列表
    chars = list(序列) 字符串,range(),字典,元组,集合,生成式和迭代器

    numbers = list(range(11))
    print(numbers)
    

    3.列表的增删改查

    1).查:获取单个元素:列表[下标]:下标范围0元素个数-1,或者-1-元素格式

            numbers = [90,80,70,60]
            print(numbers[2])
    

    a.获取部分元素(切片):列表[下标1,下标2] /列表[下标1:下标2:步进]
    注意:
    下标2的值不能获取到
    结果是列表
    步进是正的是从前往后去取,步进是负的是从后往前取
    切片时,下标是可以越界的

                
            print(numbers[0:2:1])
    

    b.遍历(一个一个获取每个元素)

                for item in numbers:
                    print(item)
    

    可以将列表直接放到for循环的in的后边
    循环过程中,for后面的变量取的是列表中的每个元素
    练习:写一个列表来保存一个班的学生的成绩(6个),统计成绩在80(包括80)分以上的个数

    scores = [90,80,70,60,89,50]
    count = 0
    for score in scores:
        if score >= 80:
            count += 1
    print(count)
    

    2).改

    语法:列表名[下标] = 新值(通过下标获取元素,修改新值)

    numbers[1] = 90
    

    3).增(增加列表的元素,添加元素)

    a.列表.append(元素):在列表末尾添加一个元素

    numbers.append(90)
    

    b.列表.insert(索引,元素):在指定的下标前添加一个元素
    列表中元素的个数发生改变后,列表中的索引会重新分配,插入的下标后
    所有下标+1

                numbers.append(0,100)
    

    练习:录入5个学生的成绩,并保存到列表中

    scores = []
    for _ in range(5):
        scores.append(int(input('Please input score:')))
    print(scores)
    

    4).删(删除列表中的元素)

    a.del 列表[下标] -->根据下标去删除列表中的元素
    del 语句是python中删除数据的语法,他可以删除任何数据:del 变量(删除变量) del 列表(删除整个列表)

                del numbers[1]  #删除下标是1的函数
                del numbers
            
                name ='0'
                del name    #删除变量
    

    b.列表.remove(元素) -->删除列表中指定的元素

                numbers.remove(80)
                print(numbers)
    

    c.列表.pop(下标) -->将指定的下标的元素从列表中取出来,并将列表中的该元素删除

                num = numbers.pop(1)
                print(numbers)
                print(num)
    

    练习:将一个保存成绩的列表中成绩低于60分的全部删除
    [78,59,40,90,89,45,69,30] --> [78,90,89,69]

    scores = [78,59,40,90,89,45,69,30]
    # i = 0
    # while i<len(scores):
    #     if scores[i]<60:
    #         scores.pop(i)
    #         i -= 1
    #     i += 1
    # print(scores)
    
    scores02 = []
    i = 0
    while i<len(scores):
        if scores[i] >= 60:
            scores02.append(scores[i])
        i += 1
    print(scores02)
    
    
    #切片时复制一份新的列表,遍历是在切片出来的列表中遍历
    #删除是在原列表删除
    for score in scores[:]:
        if score<60:
            scores.remove(score)
    print(scores)
    
    #注意:以后遍历列表的元素的时候,我们一般遍历它的拷贝的值([:])
    

    python中,变量在存数据的值的时候,会根据数据类型的不同,使用两种方式来存值
    值类型:变量存数据直接存值,例如:整型、浮点型、布尔、字符串
    引用类型:变量存数据的时候,存的是数据在内存中的地址。例如:列表,字典,元组,集合。函数类型,自定义类的对象等
    先将列中a1中的数值赋给c1,再将其放到新的地址中

    c1 =a1[:]
    

    4.列表中的运算

    a).+操作
    列表1+列表2:将列表1中的元素和列表2中的元素依次合并,并产生一个新的列表

            a=[1,2]
            list1=a+['abc',100]
            print(list1,a)
    

    b).操作:将列表中的元素重复重复N次,产生一个新的列表
    列表1
    N:

            list3=a*3
            #[1,2,1,2,1,2]
    

    c).in/not in:判断一个元素是否在/不在列表中

            print(1 in a)   #True
    

    d).len(列表):获取列表中的长度,指的就是列表中元素的个数

            len(序列)
            len(a) 
    

    5.相关的方法

    a).list.append(obj):在列表末尾添加元素
    b).list.count(obj):统计某一个元素在列表中出现的次数

            a.count(1)       
    

    c).list.extend(序列):将序列中的元素添加到列表中,一个一个取出来添加到列表中

            a.extend('abc') #[1,2,'a','b','c']
    

    d).list.index(obj):获取指定元素在列表中第一次出现的对应的下标

            a.append(2)
            a.index(2)  #1
    

    e).list.pop(下标):取出列表中指定下标的元素
    list.pop():取出列表中最后一个元素

            a.pop() #2
    

    f).list.remove(obj)
    注意:如果这个元素在列表中有多个,只删除最前面的那一个
    g).list.reverse():反转,将列表反向

                a.reverse() #[2,1]
    

    h).list.sort(cmp=None,key=None,reverse=False):对序列进行排序,默认是升序(小到大)
    list.sort(reverse=True):降序排序
    i).list.clear():将列表中的元素全部清除
    j).list.copy():将列表中的元素全部拷贝一份产生一个新的列表
    注意:这儿的拷贝是浅拷贝,浅拷贝不涉及引用类型,如果有引用数据类型浅拷贝不会进行真正的拷贝
    深拷贝会进行引用数据类型的具体的值的拷贝。
    浅拷贝:只是单纯将值进行拷贝,如果是对象就直接拷贝对象的地址
    深拷贝:会拷贝对象地址对应的值,并产生一个新的地址,将新的地址进行赋值copy.deepcopy()

    a=[1,2]
    a.extend('abc')
    print(a)
    
    #(tuple)元组就是不可变的列表,列表中除了和可变相关的内容以外,其他的全部适用于元组
    

    6.声明元组:

    变量名 = (数据1,数据2,...数据n)
    如果元组只有一个元素,必须要向以下方式书写,在唯一一个元素后面加一个逗号
    变量名 =(100,)
    变量名 = () #表示空的元组

    不支持增加、删除、修改。只支持查询相关的操作

            t3=(1,2,3,4,5)
    
            -切片
                t3[0:3]
            -索引
                t3[0]
            -遍历:
                for i in t3:
                    print(i)
    

    7.特殊操作:

            pint=(100,200)
            print(point[0],point[1])
            
            x,y=point   #通过两个变量来获取元组中的唯一两个值
            print(x,y)
    

    通过加*获取元组中的一部分元素值,最终的类型是列表

            user = ('小吕',90,98,56,'男')
            name,*score,sex=user
            
            #获取除第一个以外的后面所有的值
            user2 = ('小红',100,80,70)
            name,*score = user2
            
            user3 = (100,80,70,'小红')
            *score,name = user3
    

    多个值之间用逗号隔开,对应的数据也是元组
    a = 1,2,4,5 相当于a=(1,2,4,5)

            print(type(a))
    

    x,y = y,x 相当于 x,y=(y,x)

    相关文章

      网友评论

          本文标题:2018-08-27-day06-列表和元组

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