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


195

এই স্ট্রিংটি কীভাবে বিভক্ত করবেন যেখানে __সীমানা রয়েছে

MATCHES__STRING

এর আউটপুট পেতে ['MATCHES', 'STRING']?



8
পাইথনের স্ট্যান্ডার্ড ডকুমেন্টগুলি পড়ার এবং অন্যরা পাইথনের বেসিকগুলি বুঝতে শুরু করার জন্য কয়েকটি প্রোগ্রাম বোঝার চেষ্টা করার পক্ষে এটি মূল্যবান। অনুশীলন এবং অনুলিপি / সংশোধন ভাষা শেখার দুর্দান্ত সরঞ্জাম।
টনি ভিজালাইনেন

উত্তর:


327

আপনি str.splitফাংশনটি ব্যবহার করতে পারেন :string.split('__')

>>> "MATCHES__STRING".split("__")
['MATCHES', 'STRING']

1
আমি ভাবছিলাম, প্রথম উদাহরণ (কেবল স্প্লিট () ব্যবহার করে) এবং দ্বিতীয় উদাহরণ (লুপের জন্য) এর মধ্যে পার্থক্য কী?
এ্যান্ডেনড্রেগন

4
@ এন্ডেনড্রেগন দ্য লুপটি স্বয়ংক্রিয়ভাবে প্রয়োগ হবে x.strip()এবং উভয় পাশে শ্বেতস্পেস ছাড়াই ম্যাচের একটি তালিকা ফিরিয়ে দেবে। শয়তান বিবরণ হয়।
সাবস্টিয়ান ভের্ক্যামেন

আরে, যেহেতু এটি খুব জনপ্রিয় একটি প্রশ্ন, আমি এটি সম্পাদনা করে কেবলমাত্র একটি নির্দিষ্ট প্রশ্ন জিজ্ঞাসা করেছি এবং ডিলিমিটারের চারপাশের স্পেসগুলির সাথে অংশটি সরিয়ে দিয়েছি কারণ ওপি এমনকি কী ঘটবে বলে আশা করা যায় নি (যেহেতু কখনও কোনও প্রশ্নই আসেনি) প্রশ্নটি). আমি মনে করি এইভাবে প্রশ্ন (এবং উত্তর) আরও কার্যকর, তবে আপনি যদি একমত না হন তবে সমস্ত সম্পাদনা রোলব্যাক করুন
অরণ-ফে

4

আপনি csvমডিউলটিতে আগ্রহী হতে পারেন , যা কমা-বিচ্ছিন্ন ফাইলগুলির জন্য ডিজাইন করা হয়েছে তবে একটি কাস্টম ডিলিমিটার ব্যবহার করতে সহজেই পরিবর্তন করা যেতে পারে।

import csv
csv.register_dialect( "myDialect", delimiter = "__", <other-options> )
lines = [ "MATCHES__STRING" ]

for row in csv.reader( lines ):
    ...

1

যখন আপনার স্ট্রিংয়ে দুটি বা ততোধিক (নীচের উদাহরণে তিনটি রয়েছে) উপাদান রয়েছে, তখন আপনি এই আইটেমগুলি আলাদা করতে কমা ব্যবহার করতে পারেন:

date, time, event_name = ev.get_text(separator='@').split("@")

কোড এই লাইন পরে, তিন ভেরিয়েবল ভেরিয়েবলের তিনটি অংশ থেকে মানগুলি থাকবে EV

সুতরাং, যদি ভেরিয়েবল এভটিতে এই স্ট্রিং থাকে এবং আমরা বিভাজক '@' প্রয়োগ করি:

সা।, 23. মারজ @ 19: 00 @ ক্লাভিয়ার + অরচেস্টার: স্পিজিয়াল

তারপরে, স্প্লিট অপারেশনের পরে ভেরিয়েবল

  • তারিখের মান "সা।, 23. মুরজ" হবে
  • সময়ের মান হবে "19:00"
  • ইভেন্ট_নামটির মান "ক্লাভিয়ার + অরচেস্টার: স্পিজিয়াল" থাকবে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.