Python’da değişkenlere değer atamak için = operatörü kullanılır.
a = 100
b = 200
print(a)
# 100
print(b)
# 200
Yukarıdaki örnekte olduğu gibi, bir kerede bir tane yerine birden çok değişkene aynı anda değer atayabilirsiniz; bu, yazmak için yalnızca bir basit kod satırı gerektirdiğinden kullanışlıdır.
Aşağıdaki iki durum açıklanmıştır.
- Birden çok değişkene birden çok değer atama
- Aynı değeri birden çok değişkene atama
Birden çok değişkene birden çok değer atama
Değişkenler ve değerler virgülle ayrılarak birden çok değişkene aynı anda birden çok değer atanabilir.
a, b = 100, 200
print(a)
# 100
print(b)
# 200
Her biri farklı türde olan üç veya daha fazla değişken kabul edilebilir.
a, b, c = 0.1, 100, 'string'
print(a)
# 0.1
print(b)
# 100
print(c)
# string
Sol tarafta bir değişken varsa, bir demet olarak atanır.
a = 100, 200
print(a)
print(type(a))
# (100, 200)
# <class 'tuple'>
Sol taraftaki değişkenlerin sayısı sağ taraftaki değerlerin sayısıyla eşleşmiyorsa, bir ValueError hatası ortaya çıkar, ancak geri kalanı değişkene bir yıldız işareti eklenerek bir liste olarak atanabilir.
# 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'>
Yıldız işaretleri ve bir demet veya listenin öğelerinin birden çok değişkene nasıl atanacağı hakkında daha fazla bilgi için aşağıdaki makaleye bakın.
Aynı değeri birden çok değişkene atama
Aynı değer, art arda = kullanılarak birden çok değişkene atanabilir. Bu, birden çok değişkeni aynı değere başlatmak için kullanışlıdır.
a = b = 100
print(a)
# 100
print(b)
# 100
3’ten fazla parça kabul edilebilir.
a = b = c = 'string'
print(a)
# string
print(b)
# string
print(c)
# string
Aynı değer atandıktan sonra bunlardan birine başka bir değer atanabilir.
a = 200
print(a)
# 200
print(b)
# 100
Tamsayılar, kayan nokta sayıları ve dizeler gibi değişmez (değiştirilemez) nesneler yerine listeler ve sözlük türleri gibi değişken nesneler atarken dikkatli olun.
Ardışık olarak = kullanılması, tüm değişkenlerin aynı nesneye işaret ettiği anlamına gelir; bu nedenle, bir öğenin değerini değiştirirseniz veya yeni bir öğe eklerseniz, diğeri de değişecektir.
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ğıdaki ile aynı.
b = [0, 1, 2]
a = b
print(a is b)
# True
a[0] = 100
print(a)
# [100, 1, 2]
print(b)
# [100, 1, 2]
Bunları ayrı ayrı işlemek istiyorsanız, her birine atamanız yeterlidir.
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]
Kopyalama modülünde copy() ve deepcopy() ile sığ ve derin kopyalar oluşturma yöntemleri de vardır.