পাইথন, একটি কমা-বিভক্ত স্ট্রিংকে বিভক্ত করতে, হোয়াইটস্পেস মুছে ফেলুন এবং একটি তালিকায় রূপান্তর করুন

ব্যবসায়

পাইথনে একটি তালিকায় কমা-বিভক্ত স্ট্রিংকে বিভক্ত করার সময়, যদি এর মধ্যে কোনো স্পেস না থাকে তবে শুধুমাত্র split() কাজ করবে। যদি স্পেস থাকে তবে অতিরিক্ত স্পেস মুছে ফেলার জন্য এটি strip() এর সাথে একত্রিত করা কার্যকর। উপরন্তু, তালিকা বোঝার স্বরলিপি ব্যবহার করে লেখার একটি স্মার্ট উপায়।

এই বিভাগে, আমরা প্রথমে নিম্নলিখিত ব্যাখ্যা করি।

  • একটি নির্দিষ্ট ডিলিমিটার দিয়ে একটি স্ট্রিং বিভক্ত করুন এবং এটি একটি তালিকা হিসাবে ফেরত দিনsplit()
  • একটি স্ট্রিংয়ের শুরু এবং শেষ থেকে অতিরিক্ত অক্ষরগুলি সরান।strip()
  • উপাদানগুলি তালিকাভুক্ত করার জন্য ফাংশন এবং পদ্ধতিগুলি প্রয়োগ করার জন্য বোঝার স্বরলিপি তালিকা করুন।

এটি নীচে দেখানো হিসাবে স্পেস এবং কমা দ্বারা স্পেস এবং কমা দ্বারা পৃথক করা স্ট্রিংগুলির একটি তালিকা তৈরি করে তাও দেখায়।
one, two, three'

উপরন্তু, আমরা নিম্নলিখিত আলোচনা করা হবে

  • সংখ্যার একটি তালিকা হিসাবে এটি কিভাবে পেতে
  • কিভাবে join() ব্যবহার করবেন একটি তালিকায় যোগদান করতে এবং এটিকে আবার একটি স্ট্রিং করতে

split():একটি নির্দিষ্ট ডিলিমিটার দিয়ে একটি স্ট্রিং বিভক্ত করুন এবং এটি একটি তালিকা হিসাবে ফেরত দিন

স্ট্রিংগুলির জন্য split() পদ্ধতি ব্যবহার করে, আপনি একটি নির্দিষ্ট বিভাজন সহ একটি স্ট্রিংকে বিভক্ত করতে পারেন এবং এটি একটি তালিকা (অ্যারে) হিসাবে পেতে পারেন। নির্দিষ্ট বিভেদক নিম্নলিখিত যুক্তি দ্বারা নির্দিষ্ট করা যেতে পারে.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():শুধুমাত্র লাইনের শেষ প্রক্রিয়া করুন।

তালিকা বোঝার স্বরলিপি: উপাদানগুলি তালিকাভুক্ত করতে ফাংশন এবং পদ্ধতি প্রয়োগ করুন

আপনি যদি একটি তালিকার উপাদানগুলিতে একটি ফাংশন বা পদ্ধতি প্রয়োগ করতে চান, আপনি যদি শেষ পর্যন্ত তালিকা পেতে চান তবে লুপের পরিবর্তে তালিকা বোঝার স্বরলিপি ব্যবহার করা বুদ্ধিমানের কাজ।

এখানে, আমরা স্ট্রিংকে split() দিয়ে বিভক্ত করে প্রাপ্ত তালিকায় 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