python数据类型之基础进阶

一: 解构

1.1 结构字符串

  • 变量和字符个数必须严格一致
name = 'wc'
a,b=name
print(a)
print(b)
# w
# c
name = 'w'
a,b=name
print(a)
print(b)
#ValueError: not enough values to unpack (expected 2, got 1)
name = 'wangys'
a,b=name
print(a)
print(b)
# ValueError: too many values to unpack (expected 2)

1.2 元祖

  • 变量和元素个数必须严格一致
name = ('wangys',18)
a,b=name
print(a)
print(b)
# wangys
# 18

1.3 列表

name = ['wangys',18]
a,b=name
print(a)
print(b)
#wangys
# 18
 

1.4 字典

name = {'name': 'wangys','age':18}
a,b=name
print(a)
print(b)
#name
# age
name = {'name': 'wangys','age':18}
for a,b in name.items():
    print(a,b)
# name wangys
# age 18

二 深浅拷贝

2.1 直接赋值,操作的是同一个对象

a = [1,2,3]
b = a
a.append(4)
print(b)
# [1, 2, 3, 4]

2.2 浅拷贝

  • 只是拷贝的第一级元素,二级元素共享
  • 方法 [:]  .copy()
a = [1,2,3,['wangys']]
b = a[:]
a[3].append('mengsx')
print(b)
# [1, 2, 3, ['wangys', 'mengsx']]
a = [1,2,3,['wangys']]
b = a.copy()
a[3].append('mengsx')
print(b)

2.3 深拷贝

  • 整体拷贝(所有相关的,完全是另外一个对象)
  • copy模块的deepcopy函数
import copy
a = [1,2,3,['wangys']]
b = copy.deepcopy(a)
a[3].append('mengsx')
print(b)
# [1, 2, 3, ['wangys']]
原文地址:https://www.cnblogs.com/wc89/p/10702518.html