• python中的join、set集合、深浅拷贝


    一. join
      1. str中的join方法. 把列表转换成字符串
      2. 列表和字典在循环的时候不能直接删除.
        需要把要删除的内容记录在新列表中.
        然后循环新列表.删除字典或列表

    s = "**".join(["高华新", "刘清扬", "崔园樟"])
    print(s)
    

      


      3. fromkeys()
        1. 返回新字典. 对原字典没有影响
        2. 后面的value.是多个key共享一个value

    dic = {}
    dic = dic.fromkeys("asdf","aaaa")
    print(dic)
    

      


    二. set集合
      特点:无序, 不重复, 元素必须可哈希(不可变)
      作用:去重复
      本身是可变的数据类型. 有增删改查操作.
      frozenset()冻结的集合. 不可变的. 可哈希的

    s = {"周杰伦", "的老婆","叫昆凌", (1,2,3), "周杰伦"}
    lst = [11,5,4,1,2,5,4,1,25,2,1,4,5,5]
    s = set(lst)    # 把列表转换成集合. 进行去重复
    lst = list(s)   # 把集合转换回列表.
    print(lst)
    
    # 集合本身是可变的数据类型, 不可哈希, 有增删改查操作
    s = {"刘嘉玲", '关之琳', "王祖贤"}
    s.update("麻花藤")    # 迭代更新
    print(s)
    

      


    三. 深浅拷贝(难点)
      1. 赋值. 没有创建新对象. 公用同一个对象
      2. 浅拷贝. 拷贝第一层内容. [:]或copy()
      3. 深拷贝. 拷贝所有内容. 包括内部的所有.

    # 引入copy模块
    import copy
    
    lst1 = ["金毛狮王", "紫衫龙王", "青翼蝠王", "白眉鹰王",["张无忌","赵敏","周芷若"]]
    # lst2 = lst1[:] # 浅拷贝
    # lst2 = lst1.copy() # 浅拷贝
    lst2 = copy.deepcopy(lst1)
    
    # lst1[4].append("小昭")
    
    print(lst1)
    print(lst2)
    
    print(id(lst1[4]))
    print(id(lst2[4]))
    

      

  • 相关阅读:
    [转载]必须Mark!最佳HTML5应用开发工具推荐
    [转载]JavaScript 的轻框架开发
    [转载]Browser Link feature in Visual Studio Preview 2013
    回溯算法
    双指针法总结
    链表中的快慢指针法
    快慢指针之原地处理数组/链表
    滑动窗口法
    左右指针法:二分查找-其它应用
    左右指针法:二分查找-寻找数
  • 原文地址:https://www.cnblogs.com/JinMuBaoBao/p/9427689.html
Copyright © 2020-2023  润新知