首页 > 编程语言 > 详细

python-数据类型总结 (面试常问)

时间:2019-05-28 21:51:53      阅读:119      评论:0      收藏:0      [点我收藏+]

数字类型总结

一个值 多个值
整型/浮点型/字符串 列表/字典/元祖/集合
有序 无序
字符串/列表/元祖 字典/集合
可变 不可变
列表/字典/集合 整型/浮点型/字符串

拷贝

  • ==拷贝/浅拷贝/深拷贝都是针对可变类型数据而言的==
l1 = ['a','b','c',['d','e','f']]
l2 = l1

l1.append('g')

print(l1)  # ['a','b','c',['d','e','f'],'g']
print(l2)  # ['a','b','c',['d','e','f'],'g']

总结:如果l2是l1的拷贝对象,若l1内部的任意数据类型的元素变化,则l2内部的元素也会跟着改变,因为可变类型,值变id不变.

浅拷贝

import copy
l1 = ['a','b','c'['d','e','f']]
l2 = copy.copy(l1)

l1.append('g')

print(l1)  # ['a','b','c'['d','e','f'],'g']
print(l2)  # ['a','b','c'['d','e','f']

l1[3].append('g')
print(l1)  # ['a','b','c'['d','e','f','g'],'g']
print(l2)  # ['a','b','c'['d','e','f','g']]

总结:如果l2是l1的浅拷贝对象,若l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,则l2也会跟着改变.

深拷贝

import copy
l1 = ['a','b','c'['d','e','f']]
l2 = copy.deepcopy(l1)

l1.append('g')

print(l1)  # ['a','b','c',['d','e','f'],'g']
print(l2)  # ['a','b','c'['d','e','f']]

l1[3].append('g')

print(l1)  # ['a','b','c'['d','e','f','g'],'g']
print(l2)  # ['a','b','c'['d','e','f']]

总结:如果l2是l1的深拷贝对象,若l1内的不可变类型元素发生改过,l2不会变;如果l1内的可变类型元素发生了变化,l2也不会改变,即l2永远不会因为l1的变化而变化.

技术分享图片

技术分享图片

python-数据类型总结 (面试常问)

原文:https://www.cnblogs.com/raynduan/p/10940426.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!