ازگر میں متعدد متغیرات کو متعدد یا ایک جیسی قدر تفویض کرنا

کاروبار

Python میں، = آپریٹر کو متغیرات کو قدریں تفویض کرنے کے لیے استعمال کیا جاتا ہے۔

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

متغیر اشیاء جیسا کہ فہرستیں اور لغت کی قسمیں تفویض کرتے وقت محتاط رہیں، نہ کہ ناقابل تغیر (غیر تبدیل شدہ) اشیاء جیسے کہ عدد، تیرتے ہوئے پوائنٹس اور تار۔

#ERROR!

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