深浅拷贝

作者: 澳门新萄京app  发布:2019-10-20

1.join()

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

例如:

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

结果为:a_b_c

 

基础数据类型的补充join()把列表转化成字符串,是迭代的方式进行的拼接lst = ["alex", "dsb", "wusir", "xsb"]# 使用前面的字符串. 对后面的列表进行拼接,拼接的结果是一个字符串s = "_".joinprint###alex_dsb_wusir_xsbsplit()把字符串转化成列表lst = 'alex$dsb$wusir$xsb's = lst.splitprint####['alex', 'dsb', 'wusir', 'xsb']列表和字典都不能再循环的时候直接删除,要把删除的内容记录在新的列表中,然后在循环这个新列表,删除列表最合理的删除方式:1,把要删除的内容写在新列表中2,循环这个新列表,删除老列表lst = ['篮球', '排球', '足球', '电子竞技', '台球']new_lst = []for i in lst:if '球' in i:new_lst.appendfor i in new_lst:lst.removeprint关于删除的具体的讲解st = ["篮球", "排球" ,"足球", "电子竞技", "台球"]lst.clear()for el in lst:lst.removeprint # 删不干净.原因是: 删除一个. 元素的索引要重新排列, for循环向后走一个. 差一个for i in range: # 0 1 2 3 4lst.popprint #[]lst = ["篮球", "排球" ,"足球", "电子竞技", "台球"]# 最合理的删除方式:# 1. 把要删除的内容写在新列表中.# 2. 循环这个新列表. 删除老列表# 需求: 删除列表中代球字的运动项目new_lst = []for el in lst:if "球" in el:new_lst.append # 记录要删除的内容# 要删除的列表print# 循环新列表. 删除老列表for el in new_lst: # ['篮球', '排球', '足球', '台球']lst.removeprint字典列表和字典在被循环的时候是不能删除的.1,把要删除的key保存在一个新列表中,2,循环这个列表.删除字典中的key:vlause##### 坑:大坑,神坑 面试题:fromkeys() 帮我们创建字典的, 把第一个参数进行迭代.拿到每一项作为key和后面的value组合成字典#坑1: 返回新字典,和原来的字典没有关系dic = {}d = dic.fromkeys('风扇哥', '很困')###会新建一个字典print#{}#坑2: 如果value是可变的数据类型,那么其中的一个key对应valued = dict.fromkeysprint#{'胡': [], '辣': [], '汤': []}d['胡'].append###key 对应的是同一个列表,key变但是value不变print#{'胡': ['河南特色'], '辣': ['河南特色'], '汤': ['河南特色']}深浅拷贝1.= 没有创建新对象,只是把内存地址进行了复制从上到下只有一个列表被创建2.lst.copy 浅拷贝,只拷贝第一层copy.deepcopy() 深拷贝,对象内部的所有内容都要进行拷贝.深度克隆.原型模式为什么要有深浅的拷贝?提高创建对象的速度,计算中最慢的,就是创建对象,需要分配内存. 最快的方式就是二进制流的形式进行复制.速度最快.

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']

本文由澳门新萄京app发布于澳门新萄京app,转载请注明出处:深浅拷贝

关键词:

上一篇:没有了
下一篇:下个黑客就是你