আমি পাইথনের নেতৃস্থানীয় হোয়াইটস্পেস কীভাবে সরিয়ে দেব?


181

আমার কাছে একটি পাঠ্য স্ট্রিং রয়েছে যা 2 এবং 4 এর মধ্যে পরিবর্তিত হয়ে অনেকগুলি স্পেস দিয়ে শুরু হয়।

নেতৃস্থানীয় সাদা স্থান সরানোর সহজ উপায় কী? (যেমন। একটি নির্দিষ্ট চরিত্রের আগে সবকিছু মুছে ফেলুন?)

"  Example"   -> "Example"
"  Example  " -> "Example  "
"    Example" -> "Example"

উত্তর:


319

lstrip()পদ্ধতি একটি স্ট্রিং শুরুতে উপর নেতৃস্থানীয় অনুসরণকারী শূণ্যস্থান, NEWLINE ট্যাবে অক্ষর সরাবে:

>>> '     hello world!'.lstrip()
'hello world!'

সম্পাদন করা

মন্তব্যগুলিতে বাল্ফা যেমন উল্লেখ করেছে , কেবল স্ট্রিংয়ের শুরু থেকে ফাঁকা স্থানগুলি সরাতে , lstrip(' ')ব্যবহার করা উচিত:

>>> '   hello world with 2 spaces and a tab!'.lstrip(' ')
'\thello world with 2 spaces and a tab!'

সম্পর্কিত প্রশ্ন:


10
দ্রষ্টব্য, যদিও, সেই lstrip নেতৃস্থানীয় হোয়াইটস্পেস সরিয়ে ফেলতে পারে যা আরও বেশি স্পেস (ট্যাব ইত্যাদি) হতে পারে। এটাই সাধারণত আপনি চান আপনি যদি কেবল শূন্যস্থান এবং ফাঁকা স্থান সরাতে চান, "ব্লা" .lstrip ("") কল করুন
বলফা

1
@ বালফা: এই বিষয়টির জন্য ধন্যবাদ! আমি উত্তরে এটি যোগ করেছি।
কুবিবার

3
বছরের পর বছর ধরে প্রোগ্রামিং হয়েছে এবং এই জানেন না, রক্ষাকর্তা
ক্রিস Hawkes

3
নতুন পাইথন প্রোগ্রামারদের জন্য এটি লক্ষ্য করা কার্যকর হতে পারে যে পাইথনের স্ট্রিং অপরিবর্তনীয়, সুতরাং আপনি যদি একটি স্ট্রিং 'স্ট্রিং_এ' নিয়ে কাজ করছেন, আপনি স্ট্রিং_এ.লাস্ট্রিপ () স্ট্রিংটি নিজেই পরিবর্তন করবেন বলে মনে করতে পারেন, তবে বাস্তবে আপনি চাইবেন নিজেই বা একটি নতুন ভেরিয়েবলকে স্ট্রিং_এ.লস্ট্রিপ () এর মান নির্ধারণ করতে হবে, যেমন "স্ট্রিং_এ = স্ট্রিং_এ.লাস্ট্রিপ ()"।
ক্ষেত্রগুলি

2
দ্রষ্টব্য: যেমন lstrip () আছে সেখানে স্ট্রিপ () এবং স্ট্রাইপ () রয়েছে
আলেকজান্ডার স্টোহর

87

ফাংশনটি stripস্ট্রিংয়ের শুরু এবং শেষ থেকে সাদা স্থান সরিয়ে ফেলবে।

my_str = "   text "
my_str = my_str.strip()

সেট my_strকরা হবে "text"


18

আপনি যদি শব্দের আগে এবং পেছনে শ্বেতস্থানগুলি কাটা করতে চান তবে মাঝখানে রাখুন।
আপনি ব্যবহার করতে পারেন:

word = '  Hello World  '
stripped = word.strip()
print(stripped)

এটি লক্ষণীয় যে এটি মধ্যবর্তী স্থানটি অক্ষুণ্ণ রেখে মুদ্রণ করে, কারওাই ভাবছে যে 'Hello World', এটি অনুমান করা হয়েছে বলে আমার ধারণা, মূল প্রশ্নটি বিশেষত নেতৃত্বাধীন স্থানগুলি সরিয়ে দিতে বলছিল।
কনপার্ট 3

2
docs.python.org/3/whatsnew/3.0.html মুদ্রণ একটি ফাংশন পুরানো মুদ্রণ বিবৃতি (পিইপি 3105) এর বেশিরভাগ বিশেষ বাক্য গঠন প্রতিস্থাপনের জন্য কীওয়ার্ড আর্গুমেন্ট সহ মুদ্রণ বিবৃতিটি একটি মুদ্রণ () ফাংশন দিয়ে প্রতিস্থাপন করা হয়েছে।
mbrandeis

@ এমব্র্যান্ডিস কীভাবে এখানে বিবৃতি প্রাসঙ্গিক?
মিল্কিওয়ে 90

12

একটি নির্দিষ্ট চরিত্রের আগে সবকিছু মুছে ফেলার জন্য, একটি নিয়মিত এক্সপ্রেশন ব্যবহার করুন:

re.sub(r'^[^a]*', '')

প্রথম 'ক' পর্যন্ত সমস্ত কিছু সরিয়ে ফেলতে। [^a]আপনার পছন্দ মতো যে কোনও অক্ষর শ্রেণীর সাথে প্রতিস্থাপন করা যেতে পারে যেমন শব্দ অক্ষর।


3
আমি মনে করি লোকটি "সবচেয়ে সহজ এবং সহজতম উপায়" চেয়েছিল
নোপ

10
সত্য, তবে তিনি আরও সম্ভবত একটি সাধারণ সমস্যার সমাধানের জন্য (সম্ভবত অযৌক্তিকভাবে) জিজ্ঞাসা করেছিলেন, "যেমন। একটি নির্দিষ্ট চরিত্রের আগে সমস্ত কিছু সরিয়ে ফেলুন?", এবং এটিই আরও সাধারণ সমাধান।
সিজেএস

1

প্রশ্নটি মাল্টলাইন স্ট্রিংগুলিকে সম্বোধন করে না, তবে অজগরটির স্ট্যান্ডার্ড লাইব্রেরি টেক্সট্র্যাপ মডিউলটি ব্যবহার করে আপনি কীভাবে একাধিক লাইনের স্ট্রিং থেকে শীর্ষস্থানীয় হোয়াইটস্পেসটি ছাঁটাবেন তা এখানে । আমাদের মতো স্ট্রিং থাকলে:

s = """
    line 1 has 4 leading spaces
    line 2 has 4 leading spaces
    line 3 has 4 leading spaces
"""

আমরা যদি print(s)আউটপুট পেতে চাই:

>>> print(s)
    this has 4 leading spaces 1
    this has 4 leading spaces 2
    this has 4 leading spaces 3

এবং যদি আমরা ব্যবহার করি textwrap.dedent:

>>> import textwrap
>>> print(textwrap.dedent(s))
this has 4 leading spaces 1
this has 4 leading spaces 2
this has 4 leading spaces 3
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.