zoukankan      html  css  js  c++  java
  • join,列表和字典用for循环的删除,集合,深浅拷贝

    1.join()

      将列表转换成字符串,并且每个字符之间用另一个字符连接起来,join后面必须是可迭代的对象(字符串,列表,元组,字典,集合),数字不能迭代

    例如:

    1 s = ['a','b','c']
    2 s1 = '_'.join(s)
    3 print(s1)

    结果为:a_b_c

    2.字符串转换成列表:split()

       列表转换成字符串:join()

     

    3.列表的删除(pop,remove,del,clear)

      如果用for循环删除,第二个元素的索引就变成了第一个元素的索引,此时列表内部的索引在改变

    例如:

    1 lst = ['a','b','c','d']
    2 for i in lst:
    3     lst.remove(i)
    4 print(lst)

    结果为:['b','d']

    此时需要创建一个新的列表来记录原列表,然后for循环依次遍历新列表,删除原列表

    例如:

    1 lst = ['a','b','c','d']
    2 lst1 = []      #存放要删除的元素
    3 for i in lst:    #循环新列表
    4     lst1.append(i)    #将原列表的元素添加到新列表中
    5 for i in lst1:            #循环新列表
    6     lst.remove(i)       #删除原列表中的元素
    7 print(lst)
    8 print(lst1)    

    此时结果为:[]

          ['a','b','c','d']

    4.字典的删除:

      和列表一样,都是先创建一个新的字典,然后循环原字典,将每个元素添加到新字典中,循环新字典,删除原字典

      例如:

    dic = {'a':1,'b':2,'c':3,'d':4}
    dic1 = {}
    for i in dic:
        dic1.setdefault(i)
    for j in dic1:
        dic.pop(j)  #字典只能通过key来删除,而不能用索引删除
    print(dic)

    结果为:{}

    所以,列表和字典在循环的时候不能删除,字典在循环的时候不能改变大小

    fromkeys():用来创建一个新的字典,和原来的字典没关系,使用dict访问fromkeys()

      dic = dict.fromkeys('def',[4,5,6])

      print(dic)

    结果为:{'d':[4,5,6]'e':[4,5,6],'f':[4,5,6]}

    5.set集合:

    创建:  s = set()

    集合本身是可变的数据类型,不可哈希,有增删改查操作

    集合中的元素是不可变的,不重复,可哈西,可以去重

    将列表去重:

          s = []

          s1 = set(s) #把列表转换成集合,进行去重复

          s2 = list(s1)#把集合转换成列表

     

    6.深浅拷贝

    import copy()

    浅拷贝:lst = []

        lst1 = lst[:]

        lst1 = lst.copy()

    不管改变lst还是lst1,另一个也会改变(共用同一个内存地址)

    深拷贝:

        lst = []

        lst1 = copy.deepcopy(lst)  #创建了一个新的内存

    不管改变lst还是lst1,另一个都不会改变

  • 相关阅读:
    (树链剖分+线段树)POJ
    (树上莫队)HDU
    (LCA+树上主席树)FZU 2237
    (预处理+莫队算法)HDU
    (莫队算法)两题莫队算法统计数量的入门题
    (莫队算法)CodeForces
    sublime配置C++14
    (dfs序+莫队算法/启发式合并/树分治)Codeforces 375D
    (线段树两个lazy标记需要设定优先级)UVA 11992
    (线段树区间合并)UVA 11235
  • 原文地址:https://www.cnblogs.com/s593941/p/9415545.html
Copyright © 2011-2022 走看看