در پایتون از عملگر = برای تخصیص مقادیر به متغیرها استفاده می شود.
a = 100
b = 200
print(a)
# 100
print(b)
# 200
همانطور که در مثال بالا، شما می توانید مقادیری را به چندین متغیر در یک زمان اختصاص دهید به جای یکی در یک زمان، که راحت است زیرا فقط به یک خط کد ساده برای نوشتن نیاز دارد.
دو مورد زیر شرح داده شده است.
- چندین مقدار را به چندین متغیر اختصاص دهید
- یک مقدار را به چندین متغیر اختصاص دهید
چندین مقدار را به چندین متغیر اختصاص دهید
با جدا کردن متغیرها و مقادیر با کاما، می توان چندین مقدار را به طور همزمان به چندین متغیر اختصاص داد.
a, b = 100, 200
print(a)
# 100
print(b)
# 200
سه یا چند متغیر، هر کدام از انواع متفاوت، قابل قبول هستند.
a, b, c = 0.1, 100, 'string'
print(a)
# 0.1
print(b)
# 100
print(c)
# string
اگر یک متغیر در سمت چپ وجود داشته باشد، به عنوان یک تاپل تخصیص داده می شود.
a = 100, 200
print(a)
print(type(a))
# (100, 200)
# <class 'tuple'>
اگر تعداد متغیرهای سمت چپ با تعداد مقادیر سمت راست مطابقت نداشته باشد، خطای ValueError ایجاد میشود، اما بقیه را میتوان با اضافه کردن ستاره به متغیر به عنوان یک لیست اختصاص داد.
# a, b = 100, 200, 300
# ValueError: too many values to unpack (expected 2)
# a, b, c = 100, 200
# ValueError: not enough values to unpack (expected 3, got 2)
a, *b = 100, 200, 300
print(a)
print(type(a))
# 100
# <class 'int'>
print(b)
print(type(b))
# [200, 300]
# <class 'list'>
*a, b = 100, 200, 300
print(a)
print(type(a))
# [100, 200]
# <class 'list'>
print(b)
print(type(b))
# 300
# <class 'int'>
برای اطلاعات بیشتر در مورد ستاره ها و نحوه اختصاص عناصر یک تاپل یا لیست به چندین متغیر، به مقاله زیر مراجعه کنید.
یک مقدار را به چندین متغیر اختصاص دهید
با استفاده از = متوالی می توان یک مقدار را به چندین متغیر اختصاص داد. این برای مقداردهی اولیه چندین متغیر به یک مقدار مفید است.
a = b = 100
print(a)
# 100
print(b)
# 100
بیش از 3 قطعه قابل قبول است.
a = b = c = 'string'
print(a)
# string
print(b)
# string
print(c)
# string
پس از تخصیص همان مقدار، می توان مقدار دیگری را به یکی از آنها نسبت داد.
a = 200
print(a)
# 200
print(b)
# 100
هنگام تخصیص اشیاء قابل تغییر مانند لیست ها و انواع فرهنگ لغت، به جای اشیاء تغییرناپذیر (غیر قابل تغییر) مانند اعداد صحیح، اعداد ممیز شناور و رشته ها مراقب باشید.
استفاده از = به طور متوالی به این معنی است که همه متغیرها به یک شی اشاره می کنند، بنابراین اگر مقدار یک عنصر را تغییر دهید یا یک عنصر جدید اضافه کنید، عنصر دیگر نیز تغییر می کند.
a = b = [0, 1, 2]
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
مانند زیر.
b = [0, 1, 2]
a = b
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
اگر می خواهید آنها را جداگانه پردازش کنید، به سادگی به هر کدام اختصاص دهید.
after c = []; d = [], c and d are guaranteed to refer to two different, unique, newly created empty lists. (Note that c = d = [] assigns the same object to both c and d.)
3. Data model — Python 3.10.4 Documentation
a = [0, 1, 2]
b = [0, 1, 2]
print(a is b)
# False
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [0, 1, 2]
همچنین روش هایی برای تولید کپی های کم عمق و عمیق با copy() و deepcopy() در ماژول کپی وجود دارد.