• 基础数据类型补充、 集合 ,深浅copy


    # 元组
    # 如果元组中只有一个数据,且没有逗号,则该 '元组' 与里面的数据的数据类型相同。
    # 列表
    # 列表与列表可以相加

    # l1 = [11, 22, 33, 44, 55, 66, 77, 88]
    # 将列表中索引为奇数的元素,全部删除
    # 方法一:切片+步长删除
    # del l1[1::2]
    # # print(l1)
    # l1 = [11, 22, 33, 44, 55, 66, 77, 88]
    # l1 = [3,5,7,9,11,13,15]
    # for i in range(len(l1)):
    # print(l1)
    # print(i)
    # if i % 2 == 1:
    # l1.pop(i)
    # print(l1)
    # print(i)
    # print(l1)

    # 在循环一个列表时,如果对列表中的某些元素进行删除,
    # 那么此元素后面的所有元素就会向前进一位,他们的索引就会发生变化。


    # 方法二:
    # 将列表中索引为奇数的元素,全部删除
    # l1 = [3,5,7,9,11,13,15]
    # l2 = []
    # 0 1 2 3 4 5 6
    # for i in range(len(l1)):
    # if i % 2 == 0:
    # l2.append(l1[i])
    # print(l2)
    # l1 = l2
    # print(l1)
    # l1 = [11, 22, 33, 44, 55, 66, 77, 88]
    # # 方法三:倒着删除
    # for index in range(len(l1)-1, -1, -1):
    # print(index)
    # if index % 2 == 1:
    # l1.pop(index)
    # print(l1)
    # 在循环一个列表时,最好不要对此列表进行改变大小(增删)的操作。

    # 字典

    # fromkeys()
    # dic1 = dict.fromkeys([1,2,3],'alex')
    # print(dic1)

    :创建字典的方式
    #1,
    # dic = {'name':'alex'}
    #2
    # dic = dict({'name':'alex'})
    # print(dic)
    #3, fromkeys()

    # 陷阱:
    # dic1 = dict.fromkeys([1,2,3],[])
    # print(dic1)
    # # dic1[1].append('alex')
    # print(dic1)
    # print(id(dic1[1]))
    # print(id(dic1[2]))
    # print(id(dic1[3])) 字典里的列表是公用的 要注意

    # dic = {'key1': 'value1','key2': 'value2', 'k3':'v3', 'name': 'alex'}
    # 将 dic的键中含有k元素的所有键值对删除。
    # for key in dic:
    # if 'k' in key:
    # dic.pop(key)
    # dictionary changed size during iteration: 在循环一个字典时,不能改变字典的大小。
    # dic = {'key1': 'value1','key2': 'value2', 'k3':'v3', 'name': 'alex'}
    # l1 = []
    # for key in dic:
    # if 'k' in key:
    # l1.append(key)
    # print(l1)
    # for key in l1:
    # dic.pop(key)
    # print(dic)

    # 数据类型的转换。
    '''
    int str bool 三者转换
    str <---> bytes
    str <---> list
    dict.keys() dict.values() dict.items() list()
    tuple <---> list
    dict ---> list
    '''

    # str ---> list
    # s1 = 'alex wusir taibai'
    # l1 = s1.split()
    # print(l1)
    # list ---> str 此list中的元素全部是str类型
    # l1 = ['alex', 'wusir', 'taibai', 100]
    # # s2 = ' '.join(l1)
    # # print(s2)

    # tuple <---> list
    # l1 = [1,2,3]
    # tu1 = tuple(l1)
    # print(tu1)

    # tu2 = (0,2,3)
    # l1 = list(tu2)
    # print(l1)

    # dic1 = {'name': 'alex', 'age': 1000}
    # l1 = list(dic1)
    # print(l1)
    # 有问题
    # l2 = ['name', 'age']
    # dic2 = dict(l2)
    # print(dic2)

    ------------------------------
    list去重
    l1 = [1,1,2,3,4,4,3,2,1,5,5]
    set1 = set(l1)
    l2 = list(set1)
    print(l2)


    set1 = {1,2,3}
    set3 = frozenset(set1)
    print(set3) # 不可变的数据类型。 *** 冻集
    -----------------------------------
    # 浅copy
    # l1 = [1,2,3]
    # l2 = l1.copy()
    # l1.append(666)
    # print(l2)

    l1 = [1,2,3,[22,]]
    l2 = l1.copy()
    l1.append(666)
    print(l1,l2)
    # l1[-1].append('taibai')
    # # print(l1,l2)
    # print(id(l1))
    # print(id(l2))
    # print(id(l1[-1]))
    # print(id(l2[-1]))
    # 深copy
    import copy
    # l1 = [1,2,3,[22,]]
    # l2 = copy.deepcopy(l1)
    # # print(l1,l2)
    # # l1.append(666)
    # l1[-1].append('太白')
    # print(l2)

    解释深浅copy
    # 完全独立的copy一份数据,与原数据没有关系,深copy
    # 如果一份数据(列表)第二层时,你想与原数据进行公用,浅copy。


    # 切片属于浅copy
    # l1 = [1,2,3,[22,33]]
    # l2 = l1[:]
    # # l1.append(666)
    # l1[-1].append(666)
    # print(l2)
  • 相关阅读:
    2019牛客暑期多校训练营(第六场)
    2019牛客暑期多校训练营(第五场)
    CCPC-Wannafly Summer Camp 2019 全记录
    2018CCPC吉林赛区 | 部分题解 (HDU6555 HDU6556 HDU6559 HDU6561)
    2006-2007 ACM-ICPC | POJ3380 POJ3384 POJ3385 水题题解
    数论专场 Day9 部分题解
    Catenyms (POJ2337) 字典序最小欧拉路
    2019暑训第一场训练赛 |(2016-icpc区域赛)部分题解
    哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)B 小乐乐搭积木 (状态压缩)
    牛客练习赛32B Xor Path (树形dp)
  • 原文地址:https://www.cnblogs.com/single82/p/9487363.html
Copyright © 2020-2023  润新知