Python小白学习教程从入门到入坑------第十三课 可变与不可变类型(语法基础)

在Python中,数据类型根据其是否可以被原地修改分为可变类型和不可变类型。

目录

一、可变类型

1.1 列表(List)

1.2 字典(Dictionary)

1.3 集合(Set)

二、不可变类型



一、可变类型

含义:变量对应的值可以修改,但是内存地址不会发生改变

常见的可变类型:list、dict、set

1.1 列表(List)

  • 使用方括号 [] 创建
  • 可以原地添加、删除或修改元素
li = [1,2,3,4]
print("li的原内存地址:",id(li))
# 输出内容:li的原内存地址: 1703592022536
li.append(5)
print(li)
# 输出内容:[1, 2, 3, 4, 5]
print("li的现内存地址:",id(li))
# 输出内容:li的现内存地址: 1703592022536

1.2 字典(Dictionary)

  • 使用花括号 {} 或 dict() 创建
  • 可以原地添加、删除或修改键值对
dict = {'a': 1, 'b': 2}
print(dict,"dict的原内存地址:",id(dict))
# {'a': 1, 'b': 2} dict的原内存地址: 2012083606056

dict['c'] = 3  # 添加键值对
dict['a'] = 4  # 修改键值对  
print(dict,"dict的原内存地址:",id(dict))
# {'a': 4, 'b': 2, 'c': 3} dict的原内存地址: 2012083606056

del dict['b']  # 删除键值对
print(dict,"dict的原内存地址:",id(dict))
# {'a': 4, 'c': 3} dict的原内存地址: 2012083606056

1.3 集合(Set)

  • 使用花括号 {} 或 set() 创建,但注意花括号创建空集合时必须不带任何元素 set(),否则会被解释为字典。
  • 可以原地添加或删除元素。
set = {1, 2, 3}
print(set,"set的原内存地址:",id(set))
# {1, 2, 3} set的原内存地址: 1379155669960

set.add(4)  # 添加元素
print(set,"set的原内存地址:",id(set))
# {1, 2, 3, 4} set的原内存地址: 1379155669960

set.remove(2)  # 删除元素
print(set,"set的原内存地址:",id(set))
# {1, 3, 4} set的原内存地址: 1379155669960

二、不可变类型

含义:存储空间保存的数据不允许被修改,如果修改就会生成一个新的值从而分配新的内存空间,这种数据就是不可变类型

1、数值类型:int, bool, float, complex

2、字符串:str

3、元组:tuple

eg:

  • 整数(Integer)

    • 例如 123
    • 一旦创建,值不能改变。
  • 浮点数(Float)

    • 例如 1.02.53.14
    • 一旦创建,值不能改变。
  • 字符串(String)

    • 使用单引号‘’、双引号 "" 或三引号 '''/""" 创建。
    • 一旦创建,值不能改变(可以重新赋值)
  • 元组(Tuple)

    • 使用圆括号 () 创建,元素不可变,但整个元组本身可以赋值给另一个变量。
    • 一旦创建,元组内的元素不能改变。
  • 布尔值(Boolean)

    • 只有两个值:True 和 False
    • 一旦创建,值不能改变。
n = 10  # 整型
print("原地址:",n,id(n))
n = 15
print("修改后:",n,id(n))
# 原地址: 10 140727948770656
# 修改后: 15 140727948770816
# 内存地址不一样:修改n的值就会生成新的值,重新赋值给变量n

st = 'hello'   # 字符串
print(st,id(st))
st = 'lq'
print(st,id(st))
# hello 2388701344624
# lq 2388701345648

tua = (1,2,3)
print(tua,id(tua))
# 不支持新增删除和修改操作
tua = ('a','b','c')
print(tua,id(tua))
# 元组,不支持新增删除和修改操作
# 输出结果:
# (1, 2, 3) 1892701515192
# ('a', 'b', 'c') 1892701515592

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糊涂君-Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值