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

Posted s593941

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,另一个都不会改变

 

以上是关于join,列表和字典用for循环的删除,集合,深浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章

python中的joinset集合深浅拷贝

set集合,深浅copy

深浅拷贝和基础类型补充

Python 第六天 深浅拷贝

python基础篇 07set集合 深浅拷贝

python 学习DAY07