Python میں تاروں کی فہرستوں اور نمبروں کی فہرستوں کو ایک دوسرے میں تبدیل کرنا

کاروبار

مندرجہ ذیل مشمولات، نمونہ کوڈ کے ساتھ، وضاحت کرتے ہیں کہ کیسے Python میں سٹرنگز (str) کی فہرستوں (arrays) اور نمبروں کی فہرست (int، float) کو ایک دوسرے میں تبدیل کیا جائے۔

  • نمبروں کی فہرست کو تاروں کی فہرست میں تبدیل کریں۔
    • ایک عدد کو اعشاریہ کے تار میں تبدیل کریں۔
    • عددی قدروں کو بائنری، آکٹل اور ہیکساڈیسیمل سٹرنگز میں تبدیل کرتا ہے۔
    • ایک عددی قدر کو ایکسپونینشل اشارے میں سٹرنگ میں تبدیل کرتا ہے۔
  • تاروں کی فہرست کو نمبروں کی فہرست میں تبدیل کریں۔
    • ڈیسیمل سٹرنگ کو عددی میں تبدیل کریں۔
    • بائنری، آکٹل اور ہیکسا ڈیسیمل سٹرنگز کو نمبرز میں تبدیل کرتا ہے۔
    • کفایتی اشارے میں تاروں کو عددی قدروں میں تبدیل کرتا ہے۔
    • صرف اسٹرنگ کو تبدیل کریں جنہیں نمبروں میں تبدیل کیا جا سکتا ہے۔

فہرست سے ایک نئی فہرست تیار کرتے وقت، فہرست کی تفہیم لوپس کے مقابلے میں لکھنا آسان ہے۔ اس مضمون میں نمونہ کوڈ فہرست کی تفہیم کا بھی استعمال کرتا ہے۔ فہرست کی تفہیم کی تفصیلات کے لیے، درج ذیل مضمون کو دیکھیں۔

نوٹ کریں کہ فہرستیں مختلف قسم کے ڈیٹا کو محفوظ کر سکتی ہیں اور صفوں سے بالکل مختلف ہیں۔ درج ذیل صورتوں میں صف (معیاری لائبریری) یا NumPy استعمال کریں۔

  • میں ایسے عمل کو سنبھالنا چاہتا ہوں جن کے لیے میموری سائز اور میموری ایڈریسز کی ضرورت ہوتی ہے۔
  • بڑے ڈیٹا سیٹس وغیرہ کی عددی پروسیسنگ کے لیے صفوں کو ہینڈل کرنا چاہتے ہیں۔

نمبروں کی فہرست کو تاروں کی فہرست میں تبدیل کریں۔

ایک عدد کو اعشاریہ کے تار میں تبدیل کریں۔

عددی سے سٹرنگ میں تبدیل کرنے کے لیے str() استعمال کریں۔

Python میں، اعداد کو مختلف شکلوں میں ظاہر کیا جا سکتا ہے، بشمول ایکسپونینشل، ہیکساڈیسیمل، اور بائنری (ہیکساڈیسیمل اور بائنری اشارے)۔ str() تبادلوں کے نتیجے میں عام اعشاریہ اشارے میں ایک تار ہوتا ہے۔

ہندسوں کی تعداد پر منحصر ہے، کفایتی اشارے خود بخود استعمال ہوسکتے ہیں۔

l_n = [-0.5, 0, 1.0, 100, 1.2e-2, 0xff, 0b11]

l_n_str = [str(n) for n in l_n]
print(l_n_str)
# ['-0.5', '0', '1.0', '100', '0.012', '255', '3']

عددی قدروں کو بائنری، آکٹل اور ہیکساڈیسیمل سٹرنگز میں تبدیل کرتا ہے۔

بائنری، آکٹل، یا ہیکساڈیسیمل (بائنری اشارے، اوکٹل نوٹیشن، یا ہیکساڈیسیمل اشارے) کے تاروں میں تبدیل کرنے کے لیے، درج ذیل طریقے دستیاب ہیں۔

  • bin()
  • oct()
  • hex()
  • format()
  • str.format()

format() فنکشن کے ساتھ، صفر کو بھرنا اور ہندسوں کو ایڈجسٹ کرنا ممکن ہے۔

l_i = [0, 64, 128, 192, 256]

l_i_hex1 = [hex(i) for i in l_i]
print(l_i_hex1)
# ['0x0', '0x40', '0x80', '0xc0', '0x100']

l_i_hex2 = [format(i, '04x') for i in l_i]
print(l_i_hex2)
# ['0000', '0040', '0080', '00c0', '0100']

l_i_hex3 = [format(i, '#06x') for i in l_i]
print(l_i_hex3)
# ['0x0000', '0x0040', '0x0080', '0x00c0', '0x0100']

ایک عددی قدر کو ایکسپونینشل اشارے میں سٹرنگ میں تبدیل کرتا ہے۔

جیسا کہ اوپر بتایا گیا ہے، ہندسوں کی تعداد کے لحاظ سے کچھ معاملات خود بخود ایکسپونینشل اشارے میں ہو سکتے ہیں۔ تاہم، ہمیشہ اسٹرنگ کو ایکسپونینشل اشارے میں تبدیل کرنے کے لیے، درج ذیل میں سے ایک استعمال کریں۔

  • format()
  • str.format()

فارمیٹ() فنکشن اور سٹرنگ میتھڈ str.format() کے بارے میں مزید معلومات کے لیے، درج ذیل مضمون کو دیکھیں۔

مینٹیسا حصے کے ہندسوں کی تعداد بتائی جا سکتی ہے۔ اگر ایک بڑے حرف E کو بطور دلیل استعمال کیا جاتا ہے، تو آؤٹ پٹ سٹرنگ بھی ایک بڑا E ہوتا ہے۔

l_f = [0.0001, 123.456, 123400000]

l_f_e1 = [format(f, 'e') for f in l_f]
print(l_f_e1)
# ['1.000000e-04', '1.234560e+02', '1.234000e+08']

l_f_e2 = [format(f, '.3E') for f in l_f]
print(l_f_e2)
# ['1.000E-04', '1.235E+02', '1.234E+08']

تاروں کی فہرست کو نمبروں کی فہرست میں تبدیل کریں۔

ڈیسیمل سٹرنگ کو عددی میں تبدیل کریں۔

سٹرنگ سے نمبر میں تبدیل کرنے کے لیے int() یا float() کا استعمال کریں۔

int() ایک عدد میں تبدیلی ہے، اور float() ایک فلوٹنگ پوائنٹ نمبر میں تبدیلی ہے۔

float() میں، انٹیجر پارٹ کے ساتھ سٹرنگز کو انٹیجر پارٹ کے لیے 0 کے ساتھ مکمل کیا جاتا ہے۔

l_si = ['-10', '0', '100']

l_si_i = [int(s) for s in l_si]
print(l_si_i)
# [-10, 0, 100]

l_sf = ['.123', '1.23', '123']

l_sf_f = [float(s) for s in l_sf]
print(l_sf_f)
# [0.123, 1.23, 123.0]

بائنری، آکٹل اور ہیکسا ڈیسیمل سٹرنگز کو نمبرز میں تبدیل کرتا ہے۔

int() کی دوسری دلیل ریڈکس ہو سکتی ہے: بائنری کے لیے 2، آکٹل کے لیے 8، اور ہیکساڈیسیمل کے لیے 16، سٹرنگ کو نمبر میں تبدیل کر کے۔

اگر 0 کی وضاحت کی گئی ہے، تو درج ذیل میں سے ہر ایک پریفکسڈ سٹرنگ ایک عدد میں تبدیل ہو جاتی ہے۔

  • 0b
    • بائنری ہندسے
  • 0o
    • آکٹل
  • 0x
    • ہیکساڈیسیمل
l_sb = ['0011', '0101', '1111']

l_sb_i = [int(s, 2) for s in l_sb]
print(l_sb_i)
# [3, 5, 15]

l_sbox = ['100', '0b100', '0o77', '0xff']

l_sbox_i = [int(s, 0) for s in l_sbox]
print(l_sbox_i)
# [100, 4, 63, 255]

کفایتی اشارے میں تاروں کو عددی قدروں میں تبدیل کرتا ہے۔

ایکسپونینشل اشارے میں سٹرنگز کو خصوصی تفصیلات کی ضرورت کے بغیر براہ راست float() کے ساتھ تبدیل کیا جا سکتا ہے۔

l_se = ['1.23e3', '0.123e-1', '123']

l_se_f = [float(s) for s in l_se]
print(l_se_f)
# [1230.0, 0.0123, 123.0]

صرف اسٹرنگ کو تبدیل کریں جنہیں نمبروں میں تبدیل کیا جا سکتا ہے۔

ایک اسٹرنگ کو پاس کرنے سے جسے کسی نمبر میں int() یا float() میں تبدیل نہیں کیا جاسکتا ہے، اس کا نتیجہ ValueError ہوگا۔

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

def is_int(s):
    try:
        int(s)
    except ValueError:
        return False
    else:
        return True

def is_float(s):
    try:
        float(s)
    except ValueError:
        return False
    else:
        return True

l_multi = ['-100', '100', '1.23', '1.23e2', 'one']

l_multi_i = [int(s) for s in l_multi if is_int(s)]
print(l_multi_i)
# [-100, 100]

l_multi_f = [float(s) for s in l_multi if is_float(s)]
print(l_multi_f)
# [-100.0, 100.0, 1.23, 123.0]
Copied title and URL