网站logo

Python学习小站



一、下标法访问列表元素回顶


    rhyme = [1, 2, 3, 4, 5, "你好"]
    print(rhyme[0], rhyme[1], rhyme[2])
            

极其简单。

二、len函数获得列表长度回顶


    length = len(rhyme)
    print(length)
            

三、切片操作回顶


    print(rhyme[length - 1], rhyme[-1], rhyme[0:3], rhyme[3:6], rhyme[:3], rhyme[3:], rhyme[:], rhyme[0:6:2], rhyme[::2], rhyme[::-2], rhyme[::-1])
    s = [1,2,3,4,5]
    s[len(s):] = [6]
    print(s)
    s[len(s):] = [7,8,9]
    print(s)
    heros1 = ["蜘蛛侠","绿巨人","黑寡妇","鹰眼","灭霸","雷神"]
    heros1[4] = "钢铁侠"
    print(heros1)
    heros1[3:] = ["武松","林冲","李逵"]
    print(heros1)
        

切片方括号里面的范围一般是左闭右开,冒号左边省略,默认为0,冒号右边省略,默认为len,第二个冒号右边是显示的步长。

切片法,s[len(s):] == s[5:]表示在末尾添加元素。

可以用赋值运算符进行元素替换,它首先会把=左边指定的元素删除,然后将=右边的可迭代对象的片段插入左边被删除的位置。

切片操作还有一些很有意思的性质。比如当用下标i遍历某个字符串s时,当i的值为len(s)-1时,切片操作s[i:i+1]是合理的。 这是因为Python的切片操作是安全的,不会因为下标越界而报错。这样的切片操作会返回一个空字符串。也就是说,此时的s[i:i+1] 等价于s[i],多余的s[i+1]被截断了。

四、append函数回顶


    heros = ["绿巨人", "钢铁侠"]
    heros.append("黑寡妇")
    print(heros)
    

在列表末尾增加一个元素

五、extend函数回顶


    heros.extend(["鹰眼","灭霸","雷神"])
    print(heros)
    

extend参数必须是一个可迭代对象

六、insert函数回顶


    s.insert(0,0)
    s.insert(1,-1)
    s.insert(3,21)
    print(s)
    s.insert(len(s),6)
    

insert第一个参数是需要插入的下标,第二个参数是需要插入的元素。
insert(len(s),6)是在末尾插入6。

七、remove函数回顶


    heros.remove("灭霸")
    print(heros)
    

remove可以删除指定元素,如果列表存在多个匹配的元素, 那么它只会删除第一个。如果指定的元素不存在,那么报错 如:heros.remove("美国队长") 就会报错

八、pop与clear函数回顶


    heros.pop(2)
    print(heros)
    heros.clear()
    

pop()可以删除指定下标的元素;clear()可以删除整个列表元素。
如果pop无参数,那么一般是删除最后一个元素。

九、排序函数sort与reverse回顶


    num = [3,1,9,6,8,3,5,3]
    num.sort()
    print(num)
    num.reverse()
    print(num)
    num.sort(reverse=True)
    print(num)
    

num.sort()可以将列表进行就地从小到大排序 num.reverse()可以将列表就地从大到小排序 num.sort(reverse=true/false)如果sort的参数reverse为true, 那么就从大到小排序,如果reverse为false,那么就从小到大排序

十、count、index函数回顶


    print(num.count(3))
    index = heros1.index("绿巨人")
    print(index)
    heros1[heros1.index("绿巨人")] = "神奇女侠"
    print(heros1)
    nums = [3,1,9,6,8,3,5,3]
    print(nums.index(3,1,7))
    nums2 = nums.copy()
    print("i am the copy:",nums2)
    

num.count(目标)可以寻找目标在列表中出现的次数,heros1.index(目标)可以寻找目标对应的列表下标,当然这是一个参数的情况。如果有三个参数,index()格式就是:index(目标,start,end)也就是从start下标开始,一直寻找到end下标,寻找是否有目标,nums.copy()用来拷贝列表

十一、列表的加法和乘法回顶


    s = [1, 2, 3]
    t = [4, 5, 6]
    print(s + t)
    print(s * 3)
    

列表加法就是列表元素的衔接,列表乘法就是将列表元素重复。

十二、二维列表操作回顶


    matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    #*二维列表
    matrix = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]
    print(matrix)
    #*通过print可以直接打印二维列表
    for i in matrix:
        for each in i:
            print(each)
    #*这是访问二维列表的元素
    print("升级一下:")
    for i in matrix:
        for each in i:
            print(each, end=' ')
            #*end=' '作用是在打印each之后追加空格
        print()
    #*print()作用是打印换行符
    print(matrix[0])
    #*索引行
    print(matrix[1][1])
    #*索引元素
    #*下面是建立二维列表的第二种方法
    A = [0] * 3
    #*先创建一个一维列表,再用循环创建二维列表
    for i in range(3):
        A[i] = [0] * 3
    print(A)
    #*B = [[0] * 3] * 3是错误的
    

十三、is关键字回顶


    x = 'study'
    y = 'study'
    print(x is y)
    #*is运算符是同一性运算符,它作用是检测两个变量是否指向同个对象的运算符,
    #*即用C的看法,就是看他们是否地址相同,相同则返回true,不同则返回false
    z = [1,2,3]
    m = [1,2,3]
    print(z is m)
    #*尽管列表元素都相同,但是他们是可变的,与字符串是不一样的,他们的地址是不一样的,
    #*也就是为元素开辟的内存空间是不同的
    

十四、特殊操作回顶


    x = [1,2,3]
    y = x
    #*赋值运算不是将数据放到变量之中,而是将数据与变量挂钩,这称为引用,
    #*或者是变量的引用传递给另一个变量,正如上面的y = x,因此y和x可以同时改变一个数据
    #*要想得到两份独立的数据,需要用到拷贝
    x[1] = 0
    print(x,y)
    #*第一,使用内置函数.copy(),可以实现浅拷贝
    z = x.copy()
    x[1] = 2
    print(x,z)
    

十五、列表拷贝操作回顶


    #*第二,使用切片,也可以实现浅拷贝
    m = x[:]
    x[1] = 0
    print(x,m)
    #*这两种浅拷贝都可以实现将数据独立的作用
    #*如果有嵌套对象,那么浅拷贝就不足够了,因为浅拷贝只能拷贝外层的对象,如果出现嵌套,就要使用深拷贝
    #*深拷贝需要用到copy模块,其中,copy()函数是浅拷贝函数,deepcopy()函数是深拷贝函数
    #*deepcopy()函数可以将所有元素拷贝下来,无论嵌套层级
    x = [[1,2,3], [4,5,6], [7,8,9]]
    y = x.copy()
    x[1][1] = 0
    print(x,y)
    #*浅拷贝
    import copy
    x = [[1,2,3], [4,5,6], [7,8,9]]
    y = copy.copy(x)
    #*浅拷贝
    x[1][1] = 0
    print(x,y)
    x = [[1,2,3], [4,5,6] ,[7,8,9]]
    y = copy.deepcopy(x)
    #*深拷贝
    x[1][1] = 0
    print(x,y)