पायथन, एक अल्पविराम से अलग स्ट्रिंग को विभाजित करने के लिए विभाजित, सफेद जगह को हटा दें और एक सूची में कनवर्ट करें

व्यापार

पाइथन में एक सूची में अल्पविराम से अलग स्ट्रिंग को विभाजित करते समय, यदि बीच में कोई रिक्त स्थान नहीं है, तो बस विभाजित() काम करेगा। यदि रिक्त स्थान हैं, तो अतिरिक्त रिक्त स्थान को हटाने के लिए इसे स्ट्रिप() के साथ जोड़ना उपयोगी होता है। इसके अलावा, लिस्ट कॉम्प्रिहेंशन नोटेशन का उपयोग करना लिखने का एक स्मार्ट तरीका है।

इस खंड में, हम सबसे पहले निम्नलिखित की व्याख्या करते हैं।

  • एक निर्दिष्ट सीमांकक के साथ एक स्ट्रिंग को विभाजित करें और इसे एक सूची के रूप में वापस करेंsplit()
  • एक स्ट्रिंग की शुरुआत और अंत से अतिरिक्त वर्ण निकालें।strip()
  • तत्वों को सूचीबद्ध करने के लिए कार्यों और विधियों को लागू करने के लिए सूची समझ संकेतन।

यह यह भी दिखाता है कि रिक्त स्थान को हटाकर रिक्त स्थान और अल्पविराम द्वारा अलग किए गए तारों की सूची कैसे बनाई जाए, जैसा कि नीचे दिखाया गया है।
one, two, three'

इसके अलावा, हम निम्नलिखित पर चर्चा करेंगे

  • इसे संख्याओं की सूची के रूप में कैसे प्राप्त करें
  • किसी सूची में शामिल होने के लिए ज्वाइन () का उपयोग कैसे करें और इसे फिर से एक स्ट्रिंग बनाएं

split():एक निर्दिष्ट सीमांकक के साथ एक स्ट्रिंग को विभाजित करें और इसे एक सूची के रूप में वापस करें

स्ट्रिंग्स के लिए स्प्लिट () विधि का उपयोग करके, आप एक स्ट्रिंग को एक निर्दिष्ट सीमांकक के साथ विभाजित कर सकते हैं और इसे एक सूची (सरणी) के रूप में प्राप्त कर सकते हैं। निर्दिष्ट सीमांकक को निम्नलिखित तर्क द्वारा निर्दिष्ट किया जा सकता है।sep

यदि तर्क sep को छोड़ दिया जाता है और कोई सीमांकक निर्दिष्ट नहीं किया जाता है, तो यह स्ट्रिंग को रिक्त स्थान से विभाजित करता है और एक सूची देता है। लगातार रिक्त स्थान और टैब भी सूची को विभाजित करेंगे, इसलिए यदि आप टैब-सीमांकित स्ट्रिंग्स की एक सूची बनाना चाहते हैं, तो आप तर्क के बिना विभाजन () का उपयोग कर सकते हैं।

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']

यदि sep तर्क में एक सीमांकक निर्दिष्ट किया गया है, तो यह सूची को उस स्ट्रिंग से विभाजित करता है और एक सूची देता है।

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']

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

स्ट्रिंग विधि स्ट्रिप (), जिसे आगे समझाया जाएगा, का उपयोग दो स्थानों से निपटने के लिए किया जा सकता है।

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

स्ट्रिप () दोनों सिरों को संभालती है, लेकिन निम्नलिखित कार्य भी उपलब्ध हैं।

  • lstrip():प्रक्रिया केवल शुरुआत
  • rstrip():केवल पंक्ति के अंत की प्रक्रिया करें।

सूची बोध संकेतन: तत्वों को सूचीबद्ध करने के लिए कार्यों और विधियों को लागू करें

यदि आप किसी सूची के तत्वों के लिए कोई फ़ंक्शन या विधि लागू करना चाहते हैं, तो यदि आप सूची को अंत में प्राप्त करना चाहते हैं तो लूप के बजाय सूची समझ नोटेशन का उपयोग करना स्मार्ट है।

यहां, हम स्ट्रिंग () को स्प्लिट () के साथ विभाजित करके प्राप्त सूची में स्ट्रिप () लागू करते हैं। कॉमा से अलग की गई स्ट्रिंग में व्हॉट्सएप वाली अतिरिक्त खाली जगह को सूची बनाने के लिए हटाया जा सकता है.

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 () या फ्लोट () लागू करें।

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() एक स्ट्रिंग विधि है, सूची विधि नहीं। सूची को तर्क के रूप में निर्दिष्ट किया गया है।

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