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

পাইথনে একই প্রথম ভ্যালু ওয়ালা টাপলগুলোর যোগফল বের করা

টাপল পাইথন কালেকশন বা অ্যারে যেগুলো অর্ডার্ড কিন্তু অনচেঞ্জেবল। যদি আমাদের অনেক টাপল পাওয়া যায় যেগুলোর প্রথম এলিমেন্ট একই, তবে আমাদের এমন পরিস্থিতি আসতে পারে যখন আমাদের সেই টাপলগুলোর দ্বিতীয় এলিমেন্টগুলো যোগ করতে হবে যাদের প্রথম এলিমেন্ট সমান।

map এবং for লুপ ব্যবহার করে

এই মেথডে আমরা প্রথমে টাপলसे বানানো একটি লিস্ট বিবেচনা করি। তারপর সেগুলো ডিকশনারিতে কনভার্ট করি যাতে টাপলের এলিমেন্টগুলোকে কি-ভ্যালু পেয়ার হিসেবে অ্যাসোসিয়েট করা যায়। তারপর ডিকশনারির প্রতিটি কির জন্য ভ্যালু যোগ করার জন্য for লুপ অ্যাপ্লাই করি। সবশেষে map ফাংশন ব্যবহার করে যোগফল করা ভ্যালুগুলোর লিস্টে ফিরে যাই।

উদাহরণ

List = [(3, 19), (7, 31), (7, 50), (1, 25.5), (1, 12)]

# ডিকশনারিতে কনভার্ট
tup = {i: 0 for i, v in List}
for key, value in List:
    tup[key] = tup[key] + value

# map ফাংশন ব্যবহার
result = list(map(tuple, tup.items()))
print(result)

উপরোক্ত কোড চালালে নিচের ফলাফল পাওয়া যাবে:

আউটপুট

[(3, 19), (7, 81), (1, 37.5)]

collections মডিউল ব্যবহার করে

এখানে আমরা উপরের মতোই পদ্ধতি ফলো করি কিন্তু collections মডিউলের defaultdict মেথড ব্যবহার করি। এখন map ফাংশন ব্যবহার না করে ডিকশনারির আইটেমগুলো অ্যাক্সেস করে লিস্টে কনভার্ট করি।

উদাহরণ

from collections import defaultdict

# টাপলের লিস্ট
List = [(3, 19), (7, 31), (7, 50), (1, 25.5), (1, 12)]
dict = defaultdict(int)
for key, value in List:
    dict[key] = dict[key] + value

# আউটপুট প্রিন্ট
print(list(dict.items()))

উপরোক্ত কোড চালালে নিচের ফলাফল পাওয়া যাবে

আউটপুট

[(3, 19), (7, 81), (1, 37.5)]
  1. পাইথনে টাপল লিস্ট থেকে সর্বোচ্চ ভ্যালুর প্রথম টাপল বের করা

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

  3. পাইথনে K-র চেয়ে বড় প্রথম এলিমেন্টের ইন্ডেক্স বের করা

  4. পাইথনে একই প্রথম ভ্যালু ওয়ালা টাপলগুলোর যোগফল বের করা