Python中不同形式的赋值语句
我们使用Python赋值语句将对象分配给名称。赋值语句的目标写在等号(=)的左边,右边的对象可以是计算对象的任意表达式。
Python中有一些重要的赋值属性:-
- 赋值创建对象引用而不是复制对象。
- Python在第一次为变量赋值时创建一个变量名。
- 在引用之前必须指定名称。
- 有一些隐式执行赋值的操作。
分配声明表格:-
一、基本形式:
这种形式是最常见的形式。
student = 'Geeks'
print(student)
输出
Geeks
2. 元组赋值:
# equivalent to: (x, y) = (50, 100)
x, y = 50, 100
print('x = ', x)
print('y = ', y)
输出
x = 50
y = 100
当我们在 = 的左侧编写一个元组时, Python按位置将右侧的对象与左侧的目标配对,并从左到右分配它们。因此,x 和 y 的值分别为 50 和 100。
3.列表赋值:
这与元组分配的工作方式相同。
[x, y] = [2, 4]
print('x = ', x)
print('y = ', y)
输出
x = 2
y = 4
4.序列赋值:
在最新版本的Python中,元组和列表赋值已被推广到我们现在称为序列赋值的实例中——任何名称序列都可以分配给任何值序列,并且Python按位置一次一个地分配项目。
a, b, c = 'HEY'
print('a = ', a)
print('b = ', b)
print('c = ', c)
输出
a = H
b = E
c = Y
5. 扩展序列解包:
它使我们能够更灵活地选择要分配的序列部分。
p, *q = 'Hello'
print('p = ', p)
print('q = ', q)
这里,p 与右边字符串中的第一个字符匹配,q 与其余字符匹配。带星号的名称 (*q) 被分配一个列表,该列表收集序列中未分配给其他名称的所有项目。
输出
p = H
q = ['e', 'l', 'l', 'o']
这对于常见的编码模式特别方便,例如拆分序列并访问其前面和其余部分。
ranks = ['A', 'B', 'C', 'D']
first, *rest = ranks
print("Winner: ", first)
print("Runner ups: ", ', '.join(rest))
输出
Winner: A
Runner ups: B, C, D
6.多目标分配:
x = y = 75
print(x, y)
在这种形式中, Python将同一对象(最右边的对象)的引用分配给左侧的所有目标。
输出
75 75
7. 增强任务:
扩充赋值是一种结合了表达式和赋值的简写赋值。
x = 2
# equivalent to: x = x + 1
x += 1
print(x)
输出
3
还有其他几种增强的分配形式:
-=, **=, &=, etc.