पाइथन, अल्पविराम-विभाजित स्ट्रिङ विभाजित गर्न, ह्वाइटस्पेस हटाउनुहोस् र सूचीमा रूपान्तरण गर्नुहोस्

व्यापार

Python मा सूचीमा अल्पविराम-विभाजित स्ट्रिङ विभाजन गर्दा, बीचमा कुनै खाली ठाउँहरू छैनन् भने, केवल split() ले काम गर्नेछ। यदि त्यहाँ खाली ठाउँहरू छन् भने, यसलाई strip() सँग जोड्नको लागि अतिरिक्त खाली ठाउँहरू हटाउन उपयोगी छ। थप रूपमा, सूची बुझाइ सङ्केत प्रयोग गरेर लेख्नको लागि एक स्मार्ट तरिका हो।

यस खण्डमा, हामी पहिले निम्न व्याख्या गर्छौं।

  • निर्दिष्ट डेलिमिटरको साथ स्ट्रिङ विभाजित गर्नुहोस् र यसलाई सूचीको रूपमा फर्काउनुहोस्split()
  • स्ट्रिङको सुरु र अन्त्यबाट अतिरिक्त क्यारेक्टरहरू हटाउनुहोस्।strip()
  • तत्वहरू सूचीबद्ध गर्न कार्यहरू र विधिहरू लागू गर्नको लागि बुझाइ सङ्केत सूचीबद्ध गर्नुहोस्।

यसले खाली ठाउँहरू हटाएर स्पेस र अल्पविरामद्वारा छुट्याएका स्ट्रिङहरूको सूची कसरी बनाउने भनेर पनि देखाउँछ, जस्तै तल देखाइएको छ।
one, two, three'

थप रूपमा, हामी निम्न छलफल गर्नेछौं

  • नम्बरहरूको सूचीको रूपमा यसलाई कसरी प्राप्त गर्ने
  • सूचीमा सामेल हुन र यसलाई फेरि स्ट्रिङ बनाउन join() कसरी प्रयोग गर्ने

split():निर्दिष्ट डेलिमिटरको साथ स्ट्रिङ विभाजित गर्नुहोस् र यसलाई सूचीको रूपमा फर्काउनुहोस्

स्ट्रिङका लागि विधि split() प्रयोग गरेर, तपाइँ निर्दिष्ट सीमांककसँग स्ट्रिङ विभाजन गर्न सक्नुहुन्छ र यसलाई सूची (एरे) को रूपमा प्राप्त गर्न सक्नुहुन्छ। निर्दिष्ट सीमांकक निम्न तर्क द्वारा निर्दिष्ट गर्न सकिन्छ।sep

यदि तर्क sep मेटाइयो र कुनै सीमांकक निर्दिष्ट गरिएको छैन भने, यसले स्ट्रिङलाई स्पेसद्वारा विभाजित गर्छ र सूची फर्काउँछ। लगातार स्पेस र ट्याबहरूले सूचीलाई पनि विभाजित गर्नेछ, त्यसैले यदि तपाइँ ट्याब-सीमांकित स्ट्रिङहरूको सूची बनाउन चाहनुहुन्छ भने, तपाइँ तर्क बिना split() प्रयोग गर्न सक्नुहुन्छ।

s = 'one two three'
l = s.split()
print(l)
# ['one', 'two', 'three']

s = 'one two        three'
l = s.split()
print(l)
# ['one', 'two', 'three']

s = 'one\ttwo\tthree'
l = s.split()
print(l)
# ['one', 'two', 'three']

यदि सेप आर्गुमेन्टमा डिलिमिटर निर्दिष्ट गरिएको छ भने, यसले सूचीलाई त्यो स्ट्रिङद्वारा विभाजित गर्छ र सूची फर्काउँछ।

s = 'one::two::three'
l = s.split('::')
print(l)
# ['one', 'two', 'three']

अल्पविराम-विभाजित स्ट्रिङको अवस्थामा, यदि त्यहाँ कुनै अतिरिक्त सेतो ठाउँ छैन भने, त्यहाँ कुनै समस्या छैन, तर यदि तपाईंले अल्पविराम + सेतो ठाउँले छुट्याएको स्ट्रिङको लागि सीमांककको रूपमा अल्पविरामको साथ split() चलाउनुभयो भने, तपाइँ समाप्त हुनुहुनेछ। सुरुमा छोडिएको सेतो ठाउँको साथ स्ट्रिङहरूको सूचीको साथ।

s = 'one,two,three'
l = s.split(',')
print(l)
# ['one', 'two', 'three']

s = 'one, two, three'
l = s.split(',')
print(l)
# ['one', ' two', ' three']

तपाईंले निम्नानुसार डेलिमिटरको रूपमा अल्पविराम + स्पेस प्रयोग गर्न सक्नुहुन्छ, तर यदि मूल स्ट्रिङमा खाली ठाउँहरूको संख्या फरक छ भने यसले काम गर्दैन।, '

s = 'one, two, three'
l = s.split(', ')
print(l)
# ['one', 'two', 'three']

s = 'one, two,  three'
l = s.split(', ')
print(l)
# ['one', 'two', ' three']

स्ट्रिङ मेथड स्ट्रिप(), जसलाई अर्को व्याख्या गरिनेछ, दुई स्पेसहरूसँग व्यवहार गर्न प्रयोग गर्न सकिन्छ।

strip():स्ट्रिङको सुरु र अन्त्यबाट अतिरिक्त क्यारेक्टरहरू हटाउनुहोस्।

strip() स्ट्रिङको सुरु र अन्त्यबाट थप क्यारेक्टरहरू हटाउने विधि हो।

यदि तर्क हटाइयो भने, नयाँ स्ट्रिङ सेतो स्पेस क्यारेक्टरहरू हटाएर फर्काइन्छ। मूल स्ट्रिङ आफै परिवर्तन भएको छैन।

s = '  one  '
print(s.strip())
# one

print(s)
#   one  

यदि स्ट्रिङलाई तर्कको रूपमा निर्दिष्ट गरिएको छ भने, स्ट्रिङमा समावेश गरिएका क्यारेक्टरहरू हटाइनेछन्।

s = '-+-one-+-'
print(s.strip('-+'))
# one

यस अवस्थामा, खाली ठाउँहरू हटाइएको छैन। तसर्थ, यदि तपाइँ पनि सेतो ठाउँ हटाउन चाहनुहुन्छ भने, तल देखाइए अनुसार, खाली ठाउँहरू सहित एउटा स्ट्रिङ पास गर्नुहोस्।-+ '

s = '-+- one -+-'
print(s.strip('-+'))
#  one 

s = '-+- one -+-'
print(s.strip('-+ '))
# one

strip() दुबै छेउ ह्यान्डल गर्दछ, तर निम्न प्रकार्यहरू पनि उपलब्ध छन्।

  • lstrip():सुरुवात मात्र प्रक्रिया
  • rstrip():लाइनको अन्त्य मात्र प्रशोधन गर्नुहोस्।

सूची समझ नोटेशन: तत्वहरू सूचीबद्ध गर्न कार्यहरू र विधिहरू लागू गर्नुहोस्

यदि तपाइँ सूचीको तत्वहरूमा प्रकार्य वा विधि लागू गर्न चाहनुहुन्छ भने, यदि तपाइँ अन्तिममा सूची प्राप्त गर्न चाहानुहुन्छ भने लूपको सट्टा सूची बुझाइ सङ्केत प्रयोग गर्न स्मार्ट छ।

यहाँ, हामी स्प्लिट() को साथ स्ट्रिङ विभाजित गरेर प्राप्त सूचीमा strip() लागू गर्छौं। सूची बनाउनको लागि अल्पविराम-विभाजित स्ट्रिङमा रहेको सेतोस्पेस भएको अतिरिक्त खाली ठाउँ हटाउन सकिन्छ।

s = 'one, two, three'
l = [x.strip() for x in s.split(',')]
print(l)
# ['one', 'two', 'three']

जब यो खाली स्ट्रिङमा लागू हुन्छ, तत्वको रूपमा एकल खाली स्ट्रिङ भएको सूची प्राप्त गर्न सकिन्छ।

s = ''
l = [x.strip() for x in s.split(',')]
print(l)
print(len(l))
# ['']
# 1

यदि तपाइँ खाली स्ट्रिङको लागि खाली सूची प्राप्त गर्न चाहानुहुन्छ भने, तपाइँ सूची बुझ्न नोटेशनमा सशर्त शाखा सेटअप गर्न सक्नुहुन्छ।

s = ''
l = [x.strip() for x in s.split(',') if not s == '']
print(l)
print(len(l))
# []
# 0

one, , three'
साथै, यदि अल्पविराम-विभाजित तत्व हराइरहेको छ भने, माथि वर्णन गरिए अनुसार, पहिलो विधिले यसलाई खाली स्ट्रिङ तत्वको रूपमा सूचीबद्ध गर्नेछ।

s = 'one, , three'
l = [x.strip() for x in s.split(',')]
print(l)
print(len(l))
# ['one', '', 'three']
# 3

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

s = 'one, ,three'
l = [x.strip() for x in s.split(',') if not x.strip() == '']
print(l)
print(len(l))
# ['one', 'three']
# 2

नम्बरहरूको सूचीको रूपमा प्राप्त गर्नुहोस्

यदि तपाइँ स्ट्रिङको सट्टा संख्याहरूको सूचीको रूपमा संख्याहरूको अल्पविराम-विभाजित स्ट्रिङ प्राप्त गर्न चाहनुहुन्छ भने, int() वा float() लाई सूची बुझाइ सङ्केतमा नम्बरमा रूपान्तरण गर्न लागू गर्नुहोस्।

s = '1, 2, 3, 4'
l = [x.strip() for x in s.split(',')]
print(l)
print(type(l[0]))
# ['1', '2', '3', '4']
# <class 'str'>

s = '1, 2, 3, 4'
l = [int(x.strip()) for x in s.split(',')]
print(l)
print(type(l[0]))
# [1, 2, 3, 4]
# <class 'int'>

join():सूची मर्ज गर्नुहोस् र यसलाई स्ट्रिङको रूपमा प्राप्त गर्नुहोस्

विपरित ढाँचामा, यदि तपाइँ एक सूचीमा सामेल हुन चाहनुहुन्छ र एक विशिष्ट परिसीमक द्वारा विभाजित स्ट्रिङहरू प्राप्त गर्न चाहनुहुन्छ भने, join() विधि प्रयोग गर्नुहोस्।

यो गल्ती गर्न सजिलो छ, तर ध्यान दिनुहोस् कि join() एक स्ट्रिङ विधि हो, सूची विधि होइन। सूची एक तर्कको रूपमा निर्दिष्ट गरिएको छ।

s = 'one, two,  three'
l = [x.strip() for x in s.split(',')]
print(l)
# ['one', 'two', 'three']

print(','.join(l))
# one,two,three

print('::'.join(l))
# one::two::three

तपाइँ यसलाई निम्नानुसार एक लाइन मा लेख्न सक्नुहुन्छ।

s = 'one, two,  three'
s_new = '-'.join([x.strip() for x in s.split(',')])
print(s_new)
# one-two-three

यदि तपाइँ केवल एक निश्चित सीमांकक परिवर्तन गर्न चाहनुहुन्छ भने, यसलाई बदल्न () विधिसँग बदल्न सजिलो छ।

s = 'one,two,three'
s_new = s.replace(',', '+')
print(s_new)
# one+two+three
Copied title and URL