美文网首页
Python 学习之路-06 内置结构 list set dic

Python 学习之路-06 内置结构 list set dic

作者: 末世狂人 | 来源:发表于2019-01-24 23:41 被阅读0次

    课外话题 传值与传址

    # 传值与传址
    '''如果在调用函数的时候,传递的参数是一个对象,那么传递的是参数的存储的内存空间地址.那么在任意地方改变参数值后,其他指向该地址的变量的值都将
    改变
    '''
    def a(n):
        n[2] = 100
        print(n)
        return None
    
    def b(n):
        n += 100
        print(n)
        return None
    
    an = [1,2,3,4,5,6]
    bn = 9
    
    print(an)
    a(an)
    print(an)
    
    print(bn)
    b(bn)
    print(bn)
    
    [1, 2, 3, 4, 5, 6]
    [1, 2, 100, 4, 5, 6]
    [1, 2, 100, 4, 5, 6]
    9
    109
    9
    

    关于列表的函数

    • append 在列表的末尾追加一个值

      • list.append(value)
    • insert 在指定位置插入一个值

      • list.insert(index,value)
      • 在下标为index的位置插入一个值,index下标后面的值往后顺延
    • del 删除

      • 删除指定的值
    • pop 拿出

      • 拿出最后一个值,并返回拿出的值
    • remove 删除

      • 在列表中删除指定的值(前提是列表中有这样的一个值)
      • 在使用remove的时候,最好现行判断要删除的值是否在list中
    • clear 清空

      • 将列表中的数据清空
    • reverse 反转

      • 将列表中的值进行反转(头变尾 尾变头)
    • extend 拼接

      • 将一个列表直接拼接到另一个列表的后面
    • count 查找列表中指定值的个数

      • 查找列表中指定值的个数
    • copy 拷贝(浅拷贝)

      • 将列表拷贝到另外一个内存地址中
      • b = a.copy()
    # insert
    a = [11,22,33,44,55]
    a.insert(1,200)
    print(a)
    
    # del
    del a[1]
    print(a)
    
    #pop
    indexValue = a.pop()
    print("indexValue=",indexValue)
    
    # remove
    a.remove(44)
    print(a)
    
    # clear
    a.clear()
    print(a)
    
    # reverse
    a = [1,2,3,4,5,6]
    print(a)
    a.reverse()
    print(a)
    
    # extend
    b = [7,8,9,0]
    a.extend(b)
    print(a)
    
    # count
    index = a.count(1)
    print(index)
    
    [11, 200, 22, 33, 44, 55]
    [11, 22, 33, 44, 55]
    indexValue= 55
    [11, 22, 33]
    []
    [1, 2, 3, 4, 5, 6]
    [6, 5, 4, 3, 2, 1]
    [6, 5, 4, 3, 2, 1, 7, 8, 9, 0]
    1
    
    # copy
    a = [123,345,567,789]
    print("a.value",a)
    print("a.id=",id(a))
    print("*"*20)
    b = a.copy()
    print("b.value",b)
    print("b.id=",id(b))
    
    a.value [123, 345, 567, 789]
    a.id= 139637277773640
    ********************
    b.value [123, 345, 567, 789]
    b.id= 139637278306440
    
    #深拷贝与浅拷贝的区别
    # 浅拷贝的时候,只是拷贝列表的第一层,如果列表中还包含了其他的对象(list.set等)则不会进行拷贝而是进行地址引用
    a = [1,2,3,4,[100,200,300]]
    b = a.copy()
    print("a.id=",id(a))
    print("b.id=",id(b))
    print("*" * 20)
    print("a.value=",a)
    print("b.value=",b)
    print("*" * 20)
    print("a[4].id",id(a[4]))
    print("b[4].id",id(b[4]))
    print("*" * 20)
    b[4][1] = 666
    print("a.value=",a)
    print("b.value=",b)
    
    a.id= 139637277515912
    b.id= 139637277433736
    ********************
    a.value= [1, 2, 3, 4, [100, 200, 300]]
    b.value= [1, 2, 3, 4, [100, 200, 300]]
    ********************
    a[4].id 139637278288904
    b[4].id 139637278288904
    ********************
    a.value= [1, 2, 3, 4, [100, 666, 300]]
    b.value= [1, 2, 3, 4, [100, 666, 300]]
    

    元组 tuple

    • 可以将元组看作一个不能更改的list

    元组的创建

    • 使用() 来创建元组
      • t = ()
    • 元组的特性
      • 是有序列表
      • 元组的值可以访问,但是不能新增\修改\删除等
      • 元组的数据可以是任意类型
      • 总之,list所有特性,除了可修改以外,元组都具有
      • 也就意味着,list具有的一些操作.如:索引\分片\序列相加\相乘\成员资格等都一模一样
    # 元组的创建
    t = ()
    print(type(t))
    # 创建一个值的元组
    t = (1,)
    print(type(t))
    print(t)
    t = 1,
    print(type(t))
    print(t)
    
    # 多个值
    t = (1,2,3,4,5)
    print(type(t))
    print(t)
    
    t = 1,2,3,4,5
    print(type(t))
    print(t)
    
    # list转tuple
    a = [1,2,3,4,5,6]
    t = tuple(a)
    print(type(t))
    print(t)
    
    <class 'tuple'>
    <class 'tuple'>
    (1,)
    <class 'tuple'>
    (1,)
    <class 'tuple'>
    (1, 2, 3, 4, 5)
    <class 'tuple'>
    (1, 2, 3, 4, 5)
    <class 'tuple'>
    (1, 2, 3, 4, 5, 6)
    
    # 元组相加 (不是在原来的空间中进行值的改变,而是成为了一个新的对象)
    t1 = (1,2,3,4,5)
    t2 = (6,7,8,9,0)
    
    t1 += t2
    print(t1)
    
    (1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
    
    # 元组相乘
    t1 = (1,2,3,4,5)
    t1 = t1 * 3
    print(t1)
    
    (1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
    

    相关文章

      网友评论

          本文标题:Python 学习之路-06 内置结构 list set dic

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