Python3中的赋值语句

本文深入探讨Python中的各种赋值语句,包括基础赋值、元组赋值、列表赋值、序列赋值、序列解包、多目标赋值及增量赋值,通过实例详细解析每种赋值方式的特点和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1:基础形式

2:元组赋值

3:列表赋值

4:序列赋值

5:序列解包

6:多目标赋值

7:增量赋值


Python中的赋值语句就是把对象赋值给变量,基本形式是在等号左侧写赋值语句的目标,要赋值的对象则位于等号右侧;等号左侧是对象或对象组件,等号右侧可以是任何通过计算能得到对象的表达式;赋值语句总是创建对象的引用,而不是复制对象;

Python3中赋值语句有如下形式:

赋值语句形式:

运算

解释

s = 'ixusy88'

基础形式

s1,s2 = '123','abc'

元组赋值

[s1,s2] = ['123','abc']

列表赋值

a,b,c = '123'

序列赋值

a,*b = 'ixusy88'

序列解包

a=b= 'ixusy88'

多目标赋值

a += 22

增量赋值(等价于 a = a + 22)

隐式赋值

模块导入,函数和类定义,for循环变量,函数参数等

1:基础形式

>>> s='ixusy88'
>>> s
'ixusy88'
>>> 

2:元组赋值

>>> (s1,s2) = ('123','abc')
>>> s1,s2
('123', 'abc')
>>> 
#也可以不需要括号()
>>> s1,s2 = '111','cccc'
>>> s1,s2
('111', 'cccc')
>>> 
# 左边与右边的元素个要一致,不然会报错,如下:
>>> s1,s2 = '111','222','333'
Traceback (most recent call last):
  File "<pyshell#20>", line 1, in <module>
    s1,s2 = '111','222','333'
ValueError: too many values to unpack (expected 2)
>>> 

3:列表赋值

>>> [a,b] = ['123','abc']
>>> a,b
('123', 'abc')
>>> 
# 
>>> a,b = ['123','abc']
>>> a,b
('123', 'abc')
>>> 
# 等号右边可以是元组
>>> [a,b] = '123','abc'
>>> a,b
('123', 'abc')
# 等号 两边元素需要一致
>>> [a,b,c] = ['123','abc']
Traceback (most recent call last):
  File "<pyshell#56>", line 1, in <module>
    [a,b,c] = ['123','abc']
ValueError: not enough values to unpack (expected 3, got 2)
>>> [a,b] = ['123','abc','444']
Traceback (most recent call last):
  File "<pyshell#57>", line 1, in <module>
    [a,b] = ['123','abc','444']
ValueError: too many values to unpack (expected 2)
>>> 

4:序列赋值

>>> a,b,c,d = '1234'
>>> a,b,c,d
('1', '2', '3', '4')
>>> 
# 等号两边元素要一致
>>> a,b,c,d = '123'
Traceback (most recent call last):
  File "<pyshell#91>", line 1, in <module>
    a,b,c,d = '123'
ValueError: not enough values to unpack (expected 4, got 3)
>>> a,b,c = '1234'
Traceback (most recent call last):
  File "<pyshell#92>", line 1, in <module>
    a,b,c = '1234'
ValueError: too many values to unpack (expected 3)
>>> 

5:序列解包

# 带星号的名称,会被赋值一个列表,该列表收集了序列中剩下的没被赋值给其他名称的所有项
>>> a,*b = 'ixusy88'
>>> a,b
('i', ['x', 'u', 's', 'y', '8', '8'])
>>> a,*b,c = 'ixusy88'
>>> a,b,c
('i', ['x', 'u', 's', 'y', '8'], '8')
>>> 
>>> a,*b = [1,2,3,4]
>>> a,b
(1, [2, 3, 4])
>>> a,*b,c = [1,2,3,4,5]
>>> a,b,c
(1, [2, 3, 4], 5)
>>> 
>>> a,*b,c = range(5)
>>> a,b,c
(0, [1, 2, 3], 4)
>>> a,*b,c = [1,2,3]
>>> a,b,c
(1, [2], 3)
>>> 

6:多目标赋值

# 三个变量指向了同一个对象
>>> a=b=c = 'ixusy88'
>>> a,id(a)
('ixusy88', 2197246939464)
>>> b,id(b)
('ixusy88', 2197246939464)
>>> c,id(c)
('ixusy88', 2197246939464)
>>> 

7:增量赋值

增量赋值语句有:

x  += y     x &= y     x -= y     x |= y   

x  *= y      x ^= y     x /= y     x  >>= y

x %= y     x<<= y    x **= y   x //= y

# "+=" 对列表而言是在原位置修改:
a = [1,2,3]
b = [3,4,5]

print('1----',id(a),a)
print('2----',id(b),b)
a+=b
print('3----',id(a),a)

print('*'*10)
# "+" 是拼接,会产生新的对象:
x = [10,20,30]
y = [30,40,50]
print('4----',id(x),x)
print('5----',id(y),y)
x = x + y
print('6----',id(x),x)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值