• 三狮军团首秀 只有两千多球迷观战 2019-05-19
  • 人民网2017呼和浩特徒步迎新活动--内蒙古频道--人民网 2019-05-19
  • 【品牌资讯】环球网斩获“全国行业新闻网站传播力2017年6月榜”多项冠军 2019-05-15
  • 深化对经济工作主线的认识 从供需关系看供给侧结构性改革 2019-05-15
  • 格拉斯哥艺术学院起火 4年前曾遭火灾仍在整修 2019-05-14
  • 回复@地瓜干17世:猪临死才会嚎叫呢~ 2019-05-14
  • 婺源古村溪中发现鹰嘴龟 2019-05-08
  • 编辑评测:高夫净源控油平衡露 极速补水长效控油 2019-05-08
  • 四部门发文规范特色小镇建设防止“新瓶装旧酒” 2019-05-02
  • 【地球的盛会文明的聚会艺术的盛宴四海一家足球为人类和平幸福而荣耀!!!普京是当今人类世界最优秀的一代伟人俄罗斯赢啦!!!】 2019-04-29
  • 学习新思想,千万师生同上一堂课 2019-04-28
  • 你这种个体户都干不了的老蚕也配谈计划?真是笑死人不偿命哦? 2019-04-23
  • 感人!的哥带着患病父亲出车 孝心感动乘客 2019-04-23
  • 图解:习近平在纪念马克思诞辰200周年大会上讲话的16个金句 2019-04-16
  • 感触名家笔下的端午文化 吃香粽原来可以这样"文艺" 2019-04-16
  • 2018车牌号50选1诀窍:浅谈python的深浅拷贝以及fromkeys的用法

    山西体彩11选5直选遗漏 www.caxru.com  更新时间:2019年03月08日 14:38:59   作者:small_caier   我要评论

    这篇文章主要介绍了python的深浅拷贝以及fromkeys的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    1.join()的用法:使用前面的字符串.对后面的列表进行拼接,拼接结果是一个字符串

    # lst = ["alex","dsb",'wusir','xsb']
    # s = "".join(lst)
    # print(s) #alexdsbwusirxsb

    2.split()  根据你给的参数进行切割,切割的结果就是列表
    需要把字符串转换成列表 split
    把列表转化为字符串 join

    # s = "alex_dsb_wusir_xsb"
    # lst = s.split("_") #列表
    # print(lst)

    3.join的迭代拼接

    # print("*".join("周润发")) #用迭代的方式进行拼接
    # #周*润*发

    4.删除操作

    # lst = ["篮球","排球","乒乓球","足球","电子竞技","台球"]
    # for el in lst:
    # lst.remove(el)
    # print(lst)#['排球', '足球', '台球']

    会发现删不干净 原因是:删除一个.元素的索引重新排序,for循环向后走一个,就漏掉一个
    删掉了索引是0的元素,然后索引是1的元素补充到索引为0的位置上,然后索引指向1,
    就漏掉了以前的索引为1的元素 因为索引为一的元素在第二次循环的时候已经掉到了索引0的位置
    正确的删除操作:

    #lst = ["篮球","排球","乒乓球","足球","电子竞技","台球"]
    # for i in range(len(lst)): #0,1,2,3,4
    # lst.pop(0)
    # print(lst) #[] #永远删索引是0元素
    # for i in range(len(lst)):
    # lst.pop()
    # print(lst) #[] #从最后一个删

    最合理的删除方法:
    1,先把需要删除的元素写在一个新的列表中
    2.循环这个新列表,删除老列表

    5.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)#{'胡': [], '辣': [], '汤': []}
    # print(id(d["胡"]))#1797375051912
    # print(id(d["辣"]))#1797375051912
    # print(id(d["汤"]))#1797375051912
    #说明这几个还是同一个[] 所以对其中一个进行改变别的也进行相应的改变
    # d["胡"] .append("湖南特色")
    # print(d)#{'胡': ['湖南特色'], '辣': ['湖南特色'], '汤': ['湖南特色']}

    6.深浅拷贝
    先来看一下这个问题
    从上到下只有一个列表创建

    # lst1 = ["胡辣汤","麻辣香锅","灌汤包","油泼面"]
    # lst2 = lst1 #并没有产生新对象.只是一个指向(内存地址)的赋值
    # print(id(lst1))#2253612239048
    # print(id(lst2))#2253612239048
    # lst1.append("葫芦娃")
    # print(lst1)#['胡辣汤', '麻辣香锅', '灌汤包', '油泼面', '葫芦娃']
    # print(lst2)#['胡辣汤', '麻辣香锅', '灌汤包', '油泼面', '葫芦娃']

    用图来解释

    # lst1 = ["胡辣汤","麻辣香锅","灌汤包","油泼面"]
    # lst2 = lst1.copy() #拷贝,抄作业,可以帮我们创建新的对象,和原来一模一样,浅拷贝
    # print(id(lst1))#2232732993736
    # print(id(lst2))#2232732993672
    #
    # lst1.append("葫芦娃")
    # print(lst1)
    # print(lst2)

    用图来解释

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

    用图来解释

    #深拷贝 需要引入一个???
    import copy
    
    lst1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅", ["长白山", "白洋淀", "黄鹤楼"]]
    lst2 = copy.deepcopy(lst1)#深拷贝 对象内部的所有内容都要复制一份.深度克隆 原型模式
    print(id(lst1))#2150506176840
    print(id(lst2))#2150506178120
    
    print(lst1)#['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
    print(lst2)#['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
    lst1[4].append("葫芦娃")
    print(lst1)#['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼', '葫芦娃']]
    print(lst2)#['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
    

    用图来解释

     

    为什么要有深浅拷贝?
    提高创建速度  计算机中最慢的就是创建对象,需要分配内存各种事情
    最快的方式就是以二进制流的方式进行复制 速度最快

    以上所述是小编给大家介绍的python的深浅拷贝以及fromkeys的用法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    相关文章

    最新评论

  • 三狮军团首秀 只有两千多球迷观战 2019-05-19
  • 人民网2017呼和浩特徒步迎新活动--内蒙古频道--人民网 2019-05-19
  • 【品牌资讯】环球网斩获“全国行业新闻网站传播力2017年6月榜”多项冠军 2019-05-15
  • 深化对经济工作主线的认识 从供需关系看供给侧结构性改革 2019-05-15
  • 格拉斯哥艺术学院起火 4年前曾遭火灾仍在整修 2019-05-14
  • 回复@地瓜干17世:猪临死才会嚎叫呢~ 2019-05-14
  • 婺源古村溪中发现鹰嘴龟 2019-05-08
  • 编辑评测:高夫净源控油平衡露 极速补水长效控油 2019-05-08
  • 四部门发文规范特色小镇建设防止“新瓶装旧酒” 2019-05-02
  • 【地球的盛会文明的聚会艺术的盛宴四海一家足球为人类和平幸福而荣耀!!!普京是当今人类世界最优秀的一代伟人俄罗斯赢啦!!!】 2019-04-29
  • 学习新思想,千万师生同上一堂课 2019-04-28
  • 你这种个体户都干不了的老蚕也配谈计划?真是笑死人不偿命哦? 2019-04-23
  • 感人!的哥带着患病父亲出车 孝心感动乘客 2019-04-23
  • 图解:习近平在纪念马克思诞辰200周年大会上讲话的16个金句 2019-04-16
  • 感触名家笔下的端午文化 吃香粽原来可以这样"文艺" 2019-04-16
  • 湖南幸运赛车官网下载 新疆时时彩开奖号96 白小姐一肖中特 大乐透真的有规律吗 排列3预测 福彩开奖双色球 新疆时时彩玩法 三分pk10手机计划软件 体彩6+1开奖结果18137 云南时时彩中和值走势 重庆时时彩票软件大全 彩客网打不开 3d历史开奖号码查询 幸运飞艇 七乐彩选号器 足彩进球彩软件