zoukankan      html  css  js  c++  java
  • 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) #['胡辣汤', '灌汤包', ['长白山', '白洋淀']]

  • 相关阅读:
    AtCoder Regular Contest 093
    AtCoder Regular Contest 094
    G. Gangsters in Central City
    HGOI 20190711 题解
    HGOI20190710 题解
    HGOI 20190709 题解
    HGOI 20190708 题解
    HGOI20190707 题解
    HGOI20190706 题解
    HGOI 20190705 题解
  • 原文地址:https://www.cnblogs.com/guyannanfei/p/10065487.html
Copyright © 2011-2022 走看看