• python基础六


    补充:

    #只能是至少一个空格组成的字符串(全空格)
    s = "   "
    print(s.isspace())
    #输出:True

    tuple:

    tu = (1)         int 数据类型
    tu1 = (1,)       tuple数据类型
    tu2 = ("a")      str数据类型
    tu3 = ("a",)     tuple数据类型
    #当元组只有y一个元素组成,并且没有用“,”隔开,则该元素是什么类型,则整体就是什么数据类型

    list:

    在循环一个列表时,如果要删除某些或某类元素,容易出错

    l1 = [111,222,333,444,555]
    for i in range(len(l1)):
        del l1[i]
    print(l1)
    #报错,由于每次删除,列表都改变,越来越短,所以后面找不到
    fromkeys:
    dic = dict.fromkeys('abc','alex')
    print(dic)
    #输出{'a': 'alex', 'b': 'alex', 'c': 'alex'}
    #将前面字符串 分别作为后面字符串的key
    dic1 = dict.fromkeys([1,2,3],[])
    print(dic1)
    dic1[1].append('alex')
    print(dic1)
    #{1: [], 2: [], 3: []}
    #{1: ['alex'], 2: ['alex'], 3: ['alex']}
    #添加的“alex”是添加到没有fromkeys之前的[]
    #删除 字典中带有k的键值对
    dic = {'k1':'a','k2':'b','k3':'c','name':'d'}
    l1 = []
    for i in dic:
        if 'k' in i:
            l1.append(i)
    for j in l1:
        del dic[j]
    print(dic)
    #先把带“k”的循环出来,添加到新的列表里,然后循环列表了的数据,在字典里删除

    不可变数据类型:可哈希

    数据类型的转换:

    str--->list    用split切割

    list--->str    用join

    字典专属类型:与list转换

    print(dic.keys())      #dict_keys(['k1', 'k2', 'k3', 'name'])  再转换成列表:list(dic.keys())
    print(dic.values())
    print(dic.items())
    #都可转换成列表

    对于赋值运算,就是共同指向一个内存地址:

    l1 = [1,2,3,4]
    l2 = l1
    l1.append(5)
    print(l1,l2)
    #输出:[1, 2, 3, 4, 5] 
                [1, 2, 3, 4, 5]
    #指向同一个内存地址
    --------------------------------------------
    s1 = "abcd"
    s2 = s1
    s1 = "abcde"
    print(s1)
    print(s2)
    #输出:abcde
               abcd
    #指向不同内存地址
    #字符串不能改变,如果改变,形成新的字符

    copy:

    对于浅层copy,第一层是独立内存地址,从第二层来说,都指向同一内存地址,一变都变

    l1 = [1,2,3]
    l2 = l1.copy()
    l1.append(4)
    print(l1,id(l1))
    print(l2,id(l2))
    #输出:[1, 2, 3, 4] 737988481992
    #输出:[1, 2, 3] 737987305544
    ————————————————————
    l1 = [1,2,[4,5],3]
    l2 = l1.copy()
    l1[2].append(4)
    print(l1,id(l1))
    print(l2,id(l2))
    #输出:[1, 2, [4, 5, 4], 3] 95033008200
    #输出:[1, 2, [4, 5, 4], 3] 95034162248
    列表内部的列表:占的是同一个内存地址

    对于深copy来说,无论多少层,在内存中都是独立的

    import copy
    l1 = [1,[22,33,],2,3]
    l2 = copy.deepcopy(l1)
    l1.append(777)
    l1[1].append(666)
    print(l1,id(l1),id(l1[1]))
    print(l2,id(l2),id(l2[1]))
    #输出[1, [22, 33, 666], 2, 3, 777] 112902551624 112902552648
    #输出[1, [22, 33], 2, 3] 112902550920 112902574728
    l1 = [1,[1,2],2,3]
    l2 = l1[:]
    l1[1].append(111)
    print(l1)
    print(l2)
    #输出:[1, [1, 2, 111], 2, 3]
               [1, [1, 2, 111], 2, 3]
    #l2 = l1[:]  是浅copy  
    #切片是浅copy
  • 相关阅读:
    JS中iframe子页面与父页面之间通信
    .NET 大数据量并发解决方案
    angular的性能分析 -随记
    第二次作业
    自我介绍
    总结作业
    2019春第四次课程设计实验报告
    2019春第三次课程设计实验报告
    2019春第二次课程设计实验报告
    第十二周作业
  • 原文地址:https://www.cnblogs.com/pygg/p/8378456.html
Copyright © 2020-2023  润新知