Python-da çox dəyişənlərə çoxlu və ya eyni dəyərin təyin edilməsi

Biznes

Python-da = operatoru dəyişənlərə qiymətlər təyin etmək üçün istifadə olunur.

a = 100
b = 200

print(a)
# 100

print(b)
# 200

Yuxarıdakı misalda olduğu kimi, siz eyni anda bir əvəzinə birdən çox dəyişənə qiymətlər təyin edə bilərsiniz, bu da rahatdır, çünki yazmaq üçün yalnız bir sadə kod sətri tələb olunur.

Aşağıdakı iki hal təsvir edilmişdir.

  • Çox dəyişənlərə çoxlu qiymətlər təyin edin
  • Çox dəyişənlərə eyni dəyəri təyin edin

Çox dəyişənlərə çoxlu qiymətlər təyin edin

Dəyişənləri və dəyərləri vergüllə ayırmaqla birdən çox dəyişənə eyni vaxtda birdən çox dəyər təyin edilə bilər.

a, b = 100, 200

print(a)
# 100

print(b)
# 200

Hər biri fərqli tipdə olan üç və ya daha çox dəyişən məqbuldur.

a, b, c = 0.1, 100, 'string'

print(a)
# 0.1

print(b)
# 100

print(c)
# string

Sol tərəfdə bir dəyişən varsa, o, bir dəst kimi təyin edilir.

a = 100, 200

print(a)
print(type(a))
# (100, 200)
# <class 'tuple'>

Əgər sol tərəfdəki dəyişənlərin sayı sağ tərəfdəki dəyərlərin sayına uyğun gəlmirsə, ValueError xətası yaranacaq, lakin qalanları dəyişənə ulduz işarəsi əlavə etməklə siyahı kimi təyin edilə bilər.

# 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'>

Ulduz işarələri və bir sıra və ya siyahı elementlərinin çoxsaylı dəyişənlərə təyin edilməsi haqqında ətraflı məlumat üçün aşağıdakı məqaləyə baxın.

Çox dəyişənlərə eyni dəyəri təyin edin

Ardıcıl = istifadə etməklə eyni dəyər bir neçə dəyişənə təyin edilə bilər. Bu, birdən çox dəyişəni eyni dəyərə başlamaq üçün faydalıdır.

a = b = 100

print(a)
# 100

print(b)
# 100

3 ədəddən çox qəbul edilir.

a = b = c = 'string'

print(a)
# string

print(b)
# string

print(c)
# string

Eyni qiymət təyin edildikdən sonra onlardan birinə başqa qiymət təyin edilə bilər.

a = 200

print(a)
# 200

print(b)
# 100

Tam ədədlər, üzən nöqtəli ədədlər və sətirlər kimi dəyişməz (dəyişməz) obyektlər deyil, siyahılar və lüğət növləri kimi dəyişkən obyektləri təyin edərkən diqqətli olun.

Ardıcıl = istifadə etmək bütün dəyişənlərin eyni obyektə işarə etməsi deməkdir, beləliklə, bir elementin dəyərini dəyişdirsəniz və ya yeni element əlavə etsəniz, digəri də dəyişəcəkdir.

a = b = [0, 1, 2]

print(a is b)
# True

a[0] = 100
print(a)
# [100, 1, 2]

print(b)
# [100, 1, 2]

Aşağıdakı kimi.

b = [0, 1, 2]
a = b

print(a is b)
# True

a[0] = 100
print(a)
# [100, 1, 2]

print(b)
# [100, 1, 2]

Onları ayrıca emal etmək istəyirsinizsə, sadəcə olaraq hər birinə təyin edin.

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]

Kopya modulunda copy() və deepcopy() ilə dayaz və dərin nüsxələrin yaradılması üsulları da mövcuddur.

Copied title and URL