python 条件赋值

本文详细介绍了Python编程中的一些高效赋值方法,包括条件赋值、链式赋值、增量赋值以及序列解包。通过示例解释了如何使用这些技巧来简化代码,提高代码的可读性和效率。还特别提到了序列解包在元组、列表和字典中的应用,并强调了解包时变量数量与序列元素数量的一致性。增量赋值展示了如何通过操作符直接更新变量的值,而序列解包则展示了如何快速地将序列中的值分配给多个变量,甚至用于变量交换。
摘要由CSDN通过智能技术生成


 

if  condition:
    x = ture_value
else:
    x = false_value


# 可以写成:

x = true_value if condition else false_value


# 还有 
x = (a,b)[condition based on the value of a]

# 其实际含义是:False相当于0,True相当于1,所以condition为False时,相当于 (a,b)[0];为True时,相当于(a,b)[1]。即分别取元组(a,b)的第一个元素、第二个元素。


x = (a, a-9)[a<10]  等效于: x = a if a<10 else (a-9)

连续赋值:

# Assign values directly
a, b = 0, 1
assert a == 0
assert b == 1
  
# Assign values from a list
(r,g,b) = ["Red","Green","Blue"]
assert r == "Red"
assert g == "Green"
assert b == "Blue"
  
# Assign values from a tuple
(x,y) = (1,2)
assert x == 1
assert y == 2
>>> c1=c2=c3=c4=c5=2
>>> c1
2
>>> c2
2
>>> c3
2
>>> c4
2
>>> c5
2

链式赋值

通俗讲:链式赋值是将同一个值赋给多个变量,有点像并行赋值;

简单讲:链式赋值用于同一个对象赋值给多个变量;

x = y = 123 相当于 x = 123; y = 123;

系列解包赋值

序列解包是将多个赋值操作同时进行的方法:将多个值的序列解开,然后放到变量的序列中;

系列数据赋值给对应相同个数的变量(个数必须保持一致)。

a,b,c = 4,5,6 相当于 a = 4; b = 5; c = 6;

操作:

使用系列解包赋值实现变量互换

a,b = 1,2

a,b = b,a

print(a,b)

增量赋值

增量赋值就是将一个变量进行表达式后重新赋给变量,如 x = x + 1。

x = 3

x += 1

print(x) # 4

y = 1

y = y + 1

print(y) # 2

x *= 2

print(x) # 8

s = 'job'

s += 'name'

print(s) # jobname 字符串拼接

s *= 3

print(s) # jobnamejobnamejobname

注意事项:

1、在序列解包的时候赋值符号左边的变量数目和序列中的元素数目是完全一致的;

2、所谓增量赋值对于 “*”,“/”, “%” 等标准运算符都是成立的;

序列解包可以用于元组、列表、字典。序列解包可以让我们方便的对多个变量赋值。

>>> x,y,z = (10,20,30)

>>> x

10

>>> y

20

>>> z

30

>>> (a,b,c) = (8,9,10)

>>> a

8

>>> b

9

>>> c

10

>>> [a,b,c] = [10,20,30]

>>> a

10

>>> b

20

>>> c

30

序列解包用于字典时,默认是对“键”进行操作;

如果需要对键值对操作,则需要使用 items();

如果需要对“值”进行操作,则需要使用 values()。

# 定义一个字典 a

>>> a = {'name':'Python','age':87,'job':'teacher'}

>>> a

{'name': 'Python', 'age': 87, 'job': 'teacher'}

# 默认是对 键 进行操作

>>> x,y,z = a

>>> x

'name'

>>> y

'age'

>>> z

'job'

# 对 键值对 进行操作

>>> x1,y1,z1 = a.items()

>>> x1

('name', 'Python')

>>> y1

('age', 87)

>>> z1

('job', 'teacher')

# 对 值 进行操作

>>> x2,y2,z2 = a.values()

>>> x2

'Python'

>>> y2

87

>>> z2

'teacher'

The End
————————————————
 
原文链接:https://blog.csdn.net/weixin_34811747/article/details/112904408

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值