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

পাইথনে স্টার এক্সপ্রেশন ব্যবহার করে আনপ্যাকিং করা

ভূমিকা

আনপ্যাকিং-এর একটি বেসিক সীমাবদ্ধতা হল আপনাকে আগে থেকে সিকোয়েন্সের দৈর্ঘ্য জানতে হবে।

কীভাবে করবেন

random_numbers = [0, 1, 5, 9, 17, 12, 7, 10, 3, 2]
random_numbers_descending = sorted(random_numbers, reverse=True)
print(f"Output \n*** {random_numbers_descending}")

আউটপুট

*** [17, 12, 10, 9, 7, 5, 3, 2, 1, 0]

এখন সবচেয়ে বড় এবং দ্বিতীয় বড় সংখ্যা বের করতে চাইলে "too many values to unpack" এরর দেবে।

ইন্ডেক্সিং এবং স্লাইসিং ব্যবহার

largest = random_numbers_descending[0]
second_largest = random_numbers_descending[1]
rest_of_numbers = random_numbers_descending[2:]

স্টারড এক্সপ্রেশন (Starred Expression) ব্যবহার

পাইথন ক্যাচ-অল আনপ্যাকিং সমর্থন করে স্টারড এক্সপ্রেশন দিয়ে। এটি এক লাইনে সহজে পড়া যায়।

largest, second_largest, *rest_of_numbers = random_numbers_descending
print(f"largest: {largest}, second_largest: {second_largest}, rest_of_numbers: {rest_of_numbers}")

আউটপুট

largest: 17, second_largest: 12, rest_of_numbers: [10, 9, 7, 5, 3, 2, 1, 0]

স্টারড এক্সপ্রেশন যেকোনো পজিশনে থাকতে পারে।

*rest_of_numbers, second_smallest, smallest = random_numbers_descending

সীমাবদ্ধতা

  • কমপক্ষে একটি রিকোয়ার্ডেড পার্ট থাকতে হবে, শুধু ক্যাচ-অল দিয়ে আনপ্যাক করা যায় না (SyntaxError)।
  • একই লেভেলে একাধিক ক্যাচ-অল এক্সপ্রেশন ব্যবহার করা যায় না (SyntaxError)।
  • বহু-স্তریय স্ট্রাকচারে একাধিক স্টারড এক্সপ্রেশন ব্যবহার করা যায়।

উদাহরণ: নেস্টেড স্ট্রাকচার

player_grandslame_and_atptitles = {
    'Federer': (20, 103),
    'Nadal': (20, 84),
}
((player1, (grandslam1, *atptitles1)), (player2, (grandslam2, *atptitles2))) = player_grandslame_and_atptitles.items()
print(f'Player - {player1} Have acheived {grandslam1} grandslams and , {atptitles1} atp tour titles')
print(f'Player - {player2} Have acheived {grandslam2} grandslams and , {atptitles2} atp tour titles')

খালি লিস্ট হ্যান্ডলিং

যদি কোনো অবশিষ্ট আইটেম না থাকে, ক্যাচ-অল পার্ট খালি লিস্ট হবে।

random_numbers = [0, 1]
first, second, *rest = random_numbers
print(first, second, rest)  # (0, 1, [])
  1. পাইথন রেগুলার এক্সপ্রেশন ব্যবহার করে শুধু ডিজিট ম্যাচ করার পদ্ধতি

  2. পাইথন রেগুলার এক্সপ্রেশন ব্যবহার করে হোয়াইটস্পেস ম্যাচ করার পদ্ধতি

  3. পাইথন রেগুলার এক্সপ্রেশন ব্যবহার করে ওয়ার্ড ম্যাচ করার পদ্ধতি

  4. পাইথনে ফাইল ডিলিট করার পদ্ধতি