zoukankan      html  css  js  c++  java
  • 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
      
      
    自学整理,如果雷同,实属借鉴,敬请谅解!
  • 相关阅读:
    linux驱动程序设计的硬件基础,王明学learn
    linux设备驱动概述,王明学learn
    应用程序调试工具gdb,王明学learn
    usb设备驱动描述,王明学learn
    OK6410移植madplay播放器,王明学learn
    bootstrap使用入门(bootstrap4.2.1版本)
    IntelliJ Idea 常用快捷键列表
    javaFX 多窗口编程
    Spring Boot框架入门教程(快速学习版)
    BindingNavigator 控件
  • 原文地址:https://www.cnblogs.com/luxi526/p/12583723.html
Copyright © 2011-2022 走看看