पाइथनमा स्ट्रिङहरू (एरेहरू) र संख्याहरूको सूचीहरू एक अर्कामा रूपान्तरण गर्दै

व्यापार

निम्न सामग्रीहरू, नमूना कोड सहित, स्ट्रिङहरू (str) को सूचीहरू (एरेहरू) र पाइथनमा सङ्ख्याहरूको सूचीहरू (int, float) कसरी रूपान्तरण गर्ने भनेर व्याख्या गर्नुहोस्।

  • संख्याहरूको सूचीलाई तारहरूको सूचीमा रूपान्तरण गर्नुहोस्
    • संख्यालाई दशमलव स्ट्रिङमा रूपान्तरण गर्नुहोस्
    • संख्यात्मक मानहरूलाई बाइनरी, अक्टल र हेक्साडेसिमल स्ट्रिङहरूमा रूपान्तरण गर्छ
    • संख्यात्मक मानलाई घातांकीय सङ्केतमा स्ट्रिङमा रूपान्तरण गर्छ
  • संख्याहरूको सूचीमा तारहरूको सूचीलाई रूपान्तरण गर्नुहोस्
    • दशमलव स्ट्रिङलाई संख्यात्मकमा रूपान्तरण गर्नुहोस्
    • बाइनरी, अक्टल र हेक्साडेसिमल स्ट्रिङहरूलाई सङ्ख्याहरूमा रूपान्तरण गर्छ
    • संख्यात्मक मानहरूमा घातांकीय सङ्केतका स्ट्रिङहरूलाई रूपान्तरण गर्छ
    • संख्याहरूमा रूपान्तरण गर्न सकिने तारहरूलाई मात्र रूपान्तरण गर्नुहोस्

सूचीबाट नयाँ सूची उत्पन्न गर्दा, लूपहरूको लागि भन्दा लेख्नको लागि सूची बुझाइ सजिलो हुन्छ। यस लेखमा भएको नमूना कोडले सूची बुझाइहरू पनि प्रयोग गर्दछ। सूची समझको विवरणको लागि, निम्न लेख हेर्नुहोस्।

नोट गर्नुहोस् कि सूचीहरूले विभिन्न प्रकारका डेटा भण्डारण गर्न सक्छ र एरेहरू भन्दा कडा रूपमा फरक छन्। निम्न अवस्थामा array (मानक पुस्तकालय) वा NumPy प्रयोग गर्नुहोस्।

  • म मेमोरी साइज र मेमोरी ठेगानाहरू चाहिने प्रक्रियाहरू ह्यान्डल गर्न चाहन्छु।
  • ठूला डाटा सेटहरू इत्यादिको संख्यात्मक प्रशोधनका लागि एरेहरू ह्यान्डल गर्न चाहनुहुन्छ।

संख्याहरूको सूचीलाई तारहरूको सूचीमा रूपान्तरण गर्नुहोस्

संख्यालाई दशमलव स्ट्रिङमा रूपान्तरण गर्नुहोस्

संख्यात्मकबाट स्ट्रिङमा रूपान्तरण गर्न str() प्रयोग गर्नुहोस्।

पाइथनमा, संख्याहरू घातांक, हेक्साडेसिमल र बाइनरी (हेक्साडेसिमल र बाइनरी नोटेशन) सहित विभिन्न ढाँचाहरूमा व्यक्त गर्न सकिन्छ। 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()

ढाँचा() प्रकार्यको साथ, शून्यहरू भर्न र अंकहरू समायोजन गर्न सम्भव छ।

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()

format() प्रकार्य र string विधि str.format() मा थप जानकारीको लागि, निम्न लेख हेर्नुहोस्।

mantissa भाग को अंक को संख्या निर्दिष्ट गर्न सकिन्छ। यदि अपरकेस 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(), मेटाइएका पूर्णांक भाग भएका स्ट्रिङहरू पूर्णांक भागको लागि ० सँग पूरक हुन्छन्।

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, स्ट्रिङलाई सङ्ख्यामा रूपान्तरण गर्दै।

यदि ० निर्दिष्ट गरिएको छ भने, निम्न प्रत्येक उपसर्ग स्ट्रिङलाई पूर्णांकमा रूपान्तरण गरिन्छ।

  • 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