• python--基础数据类型的补充与深浅copy


    一 . join的用法

    复制代码
    lst =['吴彦祖','谢霆锋','刘德华']
    s = '_'.join(lst)
    print(s) # 吴彦祖_谢霆锋_刘德华
    
    # join()
    "*".join("吴彦祖") # 吴*彦*祖 把传递进去的参数进行迭代. 获取到的每个元素和前面的*进行拼接. 得到的是字符串
    split() 切割. 切割的结果是列表
    复制代码

    二 . 对正在循环的列表或者字典的删除方法

      列表和字典: 都不能在循环的时候直接删除
      把要删除的内容记录在新列表中然后循环这个新列表. 删除列表(字典)

    复制代码
    # 列表
    lst = ['篮球','足球','乒乓球','网球','电子竞技']
    lst_new = []
    for el in lst:
        if '球' in el:
            lst_new.append(el)
    # 把要删除的添加到新的列表里
    print(lst_new) # ['篮球', '足球', '乒乓球', '网球']
    for i in lst_new:
        lst.remove(i)  #  删除旧的列表
    print(lst) # ['电子竞技']  打印旧列表
    
    # 字典
    dic = {"张无忌":"乾坤大挪移", "周芷若":"哭", "赵敏":"卖萌"}
    # 把要删除的key保存在一个新列表中
    # 循环这个列表.删除字典中的key:value
    lst = []
    for k in dic:
        lst.append(k)
    # 循环列表
    # 删除字典中的内容
    for el in lst:
        dic.pop(el)
    print(dic)
    复制代码

    三 . 注意fromkeys()的用法

    复制代码
    # 坑: 大坑, 神坑
    # fromkeys() 帮我们创建字典用的
    # 把第一个参数进行迭代. 拿到每一项作为key和后面的value组合成字典
    d = dict.fromkeys("张无忌", "赵敏") # 创建字典
    print(d)  # {'张': '赵敏', '无': '赵敏', '忌': '赵敏'}
    
    # 坑1: 返回新字典. 和原来的字典没有关系
    dic = {}
    d = dic.fromkeys("风扇哥", "很困")
    print(dic) # {}
    print(d)  # {'风': '很困', '扇': '很困', '哥': '很困'}

    # 坑2: 如果value是可变的数据类型, # 那么其中一个key对应的value执行的更改操作. 其他的也跟着变 d = dict.fromkeys("胡辣汤", []) print(d) # {'胡': [], '辣': [], '汤': []} d['胡'].append("河南特色") print(d) # {'胡': ['河南特色'], '辣': ['河南特色'], '汤': ['河南特色']}
    复制代码

    四 . 深浅copy

    复制代码
    # = 
        没有创建新对象, 只是把内存地址进行了复制
    # 浅拷贝 
        lst.copy() 只拷贝第一层.
    # 深拷贝
        import copy
        copy.deepcopy() 会把对象内部的所有内容进行拷贝
    复制代码

      浅copy

    复制代码
    lst1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅", ["长白山", "白洋淀", "黄鹤楼"]]
    lst2 = lst1.copy() # 浅拷贝. 只拷贝第一层内容
    print(lst1) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
    print(lst2) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
    lst1[4].append("葫芦娃")
    print(lst1) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼', '葫芦娃']]
    print(lst2) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼', '葫芦娃']]
    复制代码

      深copy

    复制代码
    # 引入一个模块
    import copy
    lst1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅", ["长白山", "白洋淀", "黄鹤楼"]]
    lst2 = copy.deepcopy(lst1) # 深拷贝: 对象内部的所有内容都要复制一份. 深度克隆(clone). 原型模式
    
    print(lst1) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
    print(lst2) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
    
    lst1[4].append("葫芦娃")
    print(lst1) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼', '葫芦娃']]
    print(lst2) # ['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
    复制代码
  • 相关阅读:
    Winform自定义窗体样式,实现标题栏可灵活自定义
    肿瘤转录组数分析CRN:Cancer RNA-Seq Nexus
    TCGA系列--miRNA数据分析
    TCGA系列--甲基化神器mexpress
    R:reshape2包中的melt
    TCGA系列--GDCRNATools
    R软件中排序:sort(),rank(),order()
    TCGA系列--TCGA长链非编码RNA的可视化工具TANRIC
    记一次RabbitMQ解决分布式事务问题
    RabbitMQ整合Spring Booot【死信队列】
  • 原文地址:https://www.cnblogs.com/uiys/p/10673121.html
Copyright © 2020-2023  润新知