欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

join,列表和字典用for循环的删除,集合,深浅拷贝

程序员文章站 2022-05-28 22:36:12
1.join() 将列表转换成字符串,并且每个字符之间用另一个字符连接起来,join后面必须是可迭代的对象(字符串,列表,元组,字典,集合),数字不能迭代 例如: 结果为:a_b_c 2.字符串转换成列表:split() 列表转换成字符串:join() 3.列表的删除(pop,remove,del, ......

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,另一个都不会改变