কম্পিউটার টিউটোরিয়াল

পাইথনে লিস্টে শুধু সন্নিহিত শব্দ গুলো জড়িয়ে বাকি ডিজিট আলাদা রাখা


সমস্যা বিবরণ

একটি লিস্টে শব্দ এবং ডিজিট মিশে আছে। শব্দ গুলোকে (যেগুলো শুধু অক্ষর ধারণ করে) জড়িয়ে একটি স্ট্রিং বানাতে হবে এবং ডিজিট গুলো আলাদা করে রেখে দিতে হবে।

উদাহরণ

Input:  ['Tutorials', '56', '45', 'point', '1', '4']
Output: ['Tutorialspoint', '56', '45', '1', '4']

পদ্ধতি ১: লিস্ট কম্প্রিহেনশন + isalpha/isdigit

strings = ['Tutorials', '56', '45', 'point', '1', '4']

words = [element for element in strings if element.isalpha()]
digits = [element for element in strings if element.isdigit()]

result = [''.join(words)] + digits
print(result)  # ['Tutorialspoint', '56', '45', '1', '4']

পদ্ধতি ২: filter() ফাংশন ব্যবহার করে

strings = ['Tutorials', '56', '45', 'point', '1', '4']

result = [''.join(filter(str.isalpha, strings)), *filter(str.isdigit, strings)]
print(result)  # ['Tutorialspoint', '56', '45', '1', '4']

মূল বিষয়বস্তু

  • str.isalpha() — শুধু অক্ষর ধারণ করলে True
  • str.isdigit() — শুধু ডিজিট ধারণ করলে True
  • filter(function, iterable) — ফাংশন True রিটার্ন করলে এলিমেন্ট রাখে
  • Unpacking operator * দিয়ে ফিল্টারড রেজাল্ট লিস্টে মাড়া

উপসংহার

দুই পদ্ধতিই একই ফলাফল দেয়। filter() পদ্ধতিটি বেশি ফাংশনাল এবং কনসাইজ। বড় ডেটাসেটের জন্য জেনারেটর ভিত্তিক filter() মেমরি দক্ষ।

  1. পাইথনে দেওয়া সূচকের তালিকা থেকে সব উপাদান অ্যাক্সেস করা

  2. পাইথনে বাইনারি লিস্টকে ইন্টিজারে রূপান্তর

  3. পাইথনে সর্টেড লিস্ট তৈরি করা

  4. পাইথনে স্ট্রিংকে শব্দের লিস্টে রূপান্তর করা