• Python基础7_基础数据类型补充,fromkeys(),深浅拷贝


    一. 基础数据类型补充
    1.join() 和 split()
    s = "".join(lst) 用""将列表连接成字符串
    lst = s.split("") 用""将字符串切割成列表
    2.循环删除列表的每一个元素
    由于删除元素会导致元素的索引改变,所以容易出现问题,尽量不要在循环中去删除元素,可以把要删除的元素添加到另一个列表中,然后再批量删除
    (1).把要删除的元素暂时先保存到一个list中
    (2).然后循环list,在删除旧列表
    3.字典的删除
    字典在循环的时候是不能被删除的
    (1).把要删除的key放在一个新列表中
    (2).循环新列表,删除旧字典
    4.集合和字典
    集合和字典是一家人
    字典:key必须是不可变的,可哈希的,不重复的
    集合:元素必须是不可变的,可哈希的,不重复的
    二. fromkeys()创建字典
    fromkeys("元素1", "元素2")
    把第一个参数进行迭代,拿到每一项作为key和后面的value组合成字典
    坑1:返回新字典,和原来的字典没有关系
    dic = {}
    d = dic.fromkeys("风扇哥", "胡辣汤")
    print(dic) #{}
    print(d) #{'风': '胡辣汤', '扇': '胡辣汤', '哥': '胡辣汤'}
    fromkeys("元素1", ["元素2", "元素3"])
    把第一个参数进行迭代,拿到每一项作为key和后面列表组合成字典
    坑2:如果其中的一个key对其value进行更改操作,其他的也跟着改变
    d = dict.fromkeys("风扇哥", ["胡辣汤", "烩面"])
    print(d) #{'风': ['胡辣汤'], '扇': ['胡辣汤'], '哥': ['胡辣汤']}
    d["风"].append("烧饼")
    print(d)
    #{'风': ['胡辣汤', '烧饼'], '扇': ['胡辣汤', '烧饼'], '哥': ['胡辣汤', '烧饼']}
    三. 深浅拷贝
    提高创建对象的速度,计算机中最慢的就是创建对象,需要分配内存,最快的方式就是二进制流的形式进行复制,速度最快
    1.=没有创建新对象,只是内存地址进行复制
    lst1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅"]
    lst2 = lst1
    lst1.append("葫芦娃")
    print(lst1) #['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', '葫芦娃']
    print(lst2) #['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', '葫芦娃']
    2.浅拷贝:只拷贝第一层,第二层的内容不会拷贝.如果第一层元素中含有列表,则只会拷贝这个列表的内存地址
    copy()
    (1).列表中只有字符串,
    lst1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅"]
    lst2 = lst1.copy()
    lst1.append("葫芦娃")
    print(lst1) #['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', '葫芦娃']
    print(lst2) #['胡辣汤', '灌汤包', '油泼面', '麻辣香锅']
    (2).列表中还有列表
    lst1 = ["胡辣汤", "灌汤包", ["长白山", "白洋淀"]]
    lst2 = lst1.copy()
    lst1[2].append("葫芦娃")
    print(lst1) #['胡辣汤', '灌汤包', ['长白山', '白洋淀', '葫芦娃']]
    print(lst2) #['胡辣汤', '灌汤包', ['长白山', '白洋淀', '葫芦娃']]
    3.深拷贝:会把对象内部的所有内容进行拷贝
    import copy
    copy.deepcopy()
    import copy
    lst1 = ["胡辣汤", "灌汤包", ["长白山", "白洋淀"]]
    lst2 = copy.deepcopy(lst1)
    lst1[2].append("葫芦娃")
    print(lst1) #['胡辣汤', '灌汤包', ['长白山', '白洋淀', '葫芦娃']]
    print(lst2) #['胡辣汤', '灌汤包', ['长白山', '白洋淀']]

  • 相关阅读:
    Windows下对函数打桩,及Linux类似技术
    WIN10重启后,在任务栏下添加快捷工具栏消失问题修复
    VS2012下std::function的BUG解决办法
    【转载】inno setup 水波纹效果,检测安装vcredist_x86.exe等
    ArchLinux下XFCE的一个问题修复:thunar加载的环境变量不正确
    Daliy Algorithm (GPLT)-- day 94
    Daliy Algorithm (greedy , hash )-- day 93
    Daliy Algorithm (tarjan, greedy, bfs )-- day 92
    Daliy Algorithm (heap,greedy , IQ )-- day 91
    Daliy Algorithm (cf , GPLT )-- day 90
  • 原文地址:https://www.cnblogs.com/guyannanfei/p/10065487.html
Copyright © 2020-2023  润新知