পাইথনের সাথে একটি নতুন লাইন ডিলিমিটার ব্যবহার করে স্ট্র্লিট বিভক্ত করুন


108

আমার স্ট্রিংটি সীমিত করতে হবে যা এর মধ্যে নতুন লাইন রয়েছে। আমি কীভাবে এটি অর্জন করব? কোড নীচে উল্লেখ করুন।

ইনপুট:

data = """a,b,c
d,e,f
g,h,i
j,k,l"""

আউটপুট পছন্দসই:

['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

আমি নীচের পদ্ধতির চেষ্টা করেছি:

1. output = data.split('\n')
2. output = data.split('/n')
3. output = data.rstrip().split('\n')

4
এর আউটপুট কি repr(data)?
অশ্বিনী চৌধুরী চৌধুরী

উত্তর:


201

str.splitlines পদ্ধতি আপনাকে ঠিক যে দেওয়া উচিত।

>>> data = """a,b,c
... d,e,f
... g,h,i
... j,k,l"""
>>> data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

7
এর একটি সুবিধাজনক অংশ str.splitlinesহ'ল এটি \nউপস্থিত থাকলে এটি ফাইনালটি সরিয়ে ফেলবে । অর্থাৎ, 'foo\nbar\n'.split() == ['foo', 'bar', '']যখনstr.splitlines('foo\nbar\n') == ['foo', 'bar']
ম্যাথু ময়েসেন

10
data = """a,b,c
d,e,f
g,h,i
j,k,l"""

print(data.split())       # ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

str.splitডিফল্টরূপে সমস্ত সাদা স্থানের অক্ষর দ্বারা বিভক্ত হয়। যদি আসল স্ট্রিংটিতে অন্য কোনও শ্বেতক্ষেত্রের অক্ষর থাকে তবে আপনি ব্যবহার করতে পারেন

print(data.split("\n"))   # ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

অথবা @ অশ্বিনী চৌধুরী চৌধুরী মন্তব্যে যেমন পরামর্শ দিয়েছেন , আপনি তা ব্যবহার করতে পারেন

print(data.splitlines())

কেবল নিরাপদ পার্শ্ব ব্যবহারের জন্য .splitlines, যদি স্ট্রিংগুলির ফাঁকা স্থান ইত্যাদি থাকে তবে কী হবে
অশ্বিনী চৌধুরী চৌধুরী

@ অশ্বিনীচৌধুরী ইউপ, এজন্যই আমি প্রস্তাব দিয়েছি split("\n")। এর splitlinesচেয়ে ভাল .split("\n")?
thefourtheye

4
এটি \r\nপাশাপাশি এবং অন্যান্য ধরণের লাইনের সীমানাও কাজ করবে ।
অশ্বিনী চৌধুরী চৌধুরী

আপনার স্ট্রিং একটি শেষ হয় তাহলে \n, splitlines()তা উপেক্ষা করার সময় হবে split("\n")একটি অতিরিক্ত খালি স্ট্রিং থাকবে ""ফলাফলের শেষে।
মোবার্গ

10

আপনি যদি কেবল নিউলাইন দ্বারা বিভক্ত করতে চান তবে স্প্লিটলাইনগুলি ব্যবহার করা আরও ভাল () :

উদাহরণ:

>>> data = """a,b,c
... d,e,f
... g,h,i
... j,k,l"""
>>> data
'a,b,c\nd,e,f\ng,h,i\nj,k,l'
>>> data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

বিভাজন সহ () এটিও কাজ করে:

>>> data = """a,b,c
... d,e,f
... g,h,i
... j,k,l"""
>>> data
'a,b,c\nd,e,f\ng,h,i\nj,k,l'
>>> data.split()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

যাহোক:

>>> data = """
... a, eqw, qwe
... v, ewr, err
... """
>>> data
'\na, eqw, qwe\nv, ewr, err\n'
>>> data.split()
['a,', 'eqw,', 'qwe', 'v,', 'ewr,', 'err']

4
অদ্ভুত লাগে যে আপনি চরিত্র পছন্দ করে আলাদা করতে হবে না data.split('\n')?

7

এই উদ্দেশ্যে বিশেষত একটি পদ্ধতি রয়েছে:

data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

4

আপনি এখানে যান:

>>> data = """a,b,c
d,e,f
g,h,i
j,k,l"""
>>> data.split()  # split automatically splits through \n and space
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
>>> 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.