• python深浅copy,is,id


    1. 看代码写结果

      v1 = [1,2,3,4,5]
      v2 = [v1,v1,v1]
      
      v1.append(6)
      print(v1)
      print(v2)
      
      v1 = [1,2,3,4,5,6]
      v2 = [[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6]]
      
    2. 看代码写结果

      v1 = [1,2,3,4,5]
      v2 = [v1,v1,v1]
      
      v2[1][0] = 111
      v2[2][0] = 222
      print(v1)
      print(v2)
      

      结果:

      v1 = [222,2,3,4,5]
      v2 = [[222,2,3,4,5], [222,2,3,4,5], [222,2,3,4,5]]
      
    3. 看代码写结果,并解释每一步的流程。

      v1 = [1,2,3,4,5,6,7,8,9]
      v2 = {}
      
      for item in v1:
          if item < 6:
              continue
          if 'k1' in v2:
              v2['k1'].append(item)
      	else:
              v2['k1'] = [item ]
      print(v2)
      

      结果:

      v1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
      v2 = {}  # 建立空字典
      
      for item in v1: # 遍历列表v1
          if item < 6: # 如果列表元素小于6时中止继续下次循环
              continue
          if 'k1' in v2: # item大于等于6时,如果'k1'在v2字典中
              v2['k1'].append(item) # 'k1'的键值追加item
          else:
              v2['k1'] = [item]  # 否则直接增加键值对:'k1':item
      print(v2)
      
      # v2 = {'k1':[6,7,8,9}
      
    4. 简述深浅拷贝?

    5. 看代码写结果

      import copy
      
      v1 = "alex"
      v2 = copy.copy(v1)
      v3 = copy.deepcopy(v1)
      
      print(v1 is v2)
      print(v1 is v3)
      

      结果:

      True
      True
      
    6. 看代码写结果

      import copy
      
      v1 = [1,2,3,4,5]
      v2 = copy.copy(v1)
      v3 = copy.deepcopy(v1)
      
      print(v1 is v2)
      print(v1 is v3)
      
      False
      False
      
      
    7. 看代码写结果

      import copy
      
      v1 = [1,2,3,4,5]
      
      v2 = copy.copy(v1)
      v3 = copy.deepcopy(v1)
      
      print(v1[0] is v2[0])
      print(v1[0] is v3[0])
      print(v2[0] is v3[0])
      

      结果:

      True
      True
      True
      
    8. 看代码写结果

      import copy
      
      v1 = [1,2,3,4,[11,22]]
      v2 = copy.copy(v1)
      v3 = copy.deepcopy(v1)
      
      print(v1[-1] is v2[-1])
      print(v1[-1] is v3[-1])
      print(v2[-1] is v3[-1])
      

      结果:

      True
      False
      False
      
    9. 看代码写结果

      import copy
      
      v1 = [1,2,3,{"name":'太白',"numbers":[7,77,88]},4,5]
      v2 = copy.copy(v1)
      
      print(v1 is v2)
      
      print(v1[0] is v2[0])
      print(v1[3] is v2[3])
      
      print(v1[3]['name'] is v2[3]['name'])
      print(v1[3]['numbers'] is v2[3]['numbers'])
      print(v1[3]['numbers'][1] is v2[3]['numbers'][1])
      

      结果:

      False
      True
      True
      True
      True
      True
      
    10. 看代码写结果

      import copy
      
      v1 = [1,2,3,{"name":'太白',"numbers":[7,77,88]},4,5]
      
      v2 = copy.deepcopy(v1)
      
      print(v1 is v2)
      
      print(v1[0] is v2[0])
      print(v1[3] is v2[3])
      
      print(v1[3]['name'] is v2[3]['name'])
      print(v1[3]['numbers'] is v2[3]['numbers'])
      print(v1[3]['numbers'][1] is v2[3]['numbers'][1])
      

      结果:

      False
      True
      False
      True
      False
      True
      
      
    自学整理,如果雷同,实属借鉴,敬请谅解!
  • 相关阅读:
    $POST数组论证($GET || $COOKIE || $REQUEST 同理)
    PHP之preg_replace()与ereg_replace()正则匹配比较讲解
    PHP之mysql_real_escape_string()函数讲解
    浅析白盒审计中的字符编码及SQL注入
    PHP之list()函数讲解
    PHP之implode与explode函数讲解
    PHP之Error与Logging函数讲解
    Nextcloud私有云盘在Centos7下的部署笔记
    Linux下路由配置梳理
    实验c语言不同类型的指针互用(不推荐只是学习用)
  • 原文地址:https://www.cnblogs.com/luxi526/p/12583723.html
Copyright © 2020-2023  润新知