تخصیص چندین یا یک مقدار به چندین متغیر در پایتون

کسب و کار

در پایتون از عملگر = برای تخصیص مقادیر به متغیرها استفاده می شود.

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() در ماژول کپی وجود دارد.

Copied title and URL