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

পাইথন: ম্যাট্রিক্সকে প্রথম কলামের এলিমেন্ট অনুযায়ী মার্জ করা

নেস্টেড লিস্ট (ম্যাট্রিক্স) কে প্রথম এলিমেন্ট (কি) অনুযায়ী গ্রুপ করে, একই কির সারিগুলোকে একসাথে মার্জ করার জন্য setdefault() এবং লিস্ট কম্প্রিহেনশন ব্যবহার করা হয়।

উদাহরণ


my_list = [[41, "python"], [13, "pyt"], [41, "is"], [4, "always"], [3, "fun"]]
print("মূল ম্যাট্রিক্স:")
for row in my_list:
    print("  ", row)

# ডিকশনারি দিয়ে গ্রুপিং
merged_dict = {}
for key, value in my_list:
    merged_dict.setdefault(key, []).append(value)

# ডিকশনারি থেকে আবার লিস্টে: [key, val1, val2, ...]
result = [[key] + values for key, values in merged_dict.items()]

print("\nমার্জ করা ম্যাট্রিক্স:")
for row in result:
    print("  ", row)

আউটপুট


মূল ম্যাট্রিক্স:
   [41, 'python']
   [13, 'pyt']
   [41, 'is']
   [4, 'always']
   [3, 'fun']

মার্জ করা ম্যাট্রিক্স:
   [41, 'python', 'is']
   [13, 'pyt']
   [4, 'always']
   [3, 'fun']

ব্যাখ্যা

  • setdefault(key, []) — কি না থাকলে খালি লিস্ট তৈরি করে
  • .append(value) — ভ্যালু যোগ করে
  • [[key] + values ...] — কি এবং ভ্যালু লিস্ট একসাথে নতুন সারি বানায়

collections.defaultdict(list) ব্যবহার


from collections import defaultdict

merged = defaultdict(list)
for key, val in my_list:
    merged[key].append(val)

result = [[k] + v for k, v in merged.items()]

Pandas-এ groupby + agg(list)


import pandas as pd
df = pd.DataFrame(my_list, columns=['key', 'value'])
result = df.groupby('key')['value'].apply(list).reset_index()
# result.values.tolist() দিয়ে লিস্টে রূপান্তর

সর্টেড আউটপুট


result = sorted([[k] + v for k, v in merged_dict.items()], key=lambda x: x[0])
# কি অনুযায়ী সর্টেড: [[3, 'fun'], [4, 'always'], [13, 'pyt'], [41, 'python', 'is']]
  1. পাইথনে লিস্টের প্রথম ও শেষ উপাদান বের করুন

  2. পাইথনে ম্যাট্রিক্সে নির্দিষ্ট সেলের সারি ও কলাম বাদ দিয়ে বাকি সব উপাদানের যোগফল

  3. পাইথনে কলামকে তালিকার তালিকায় পৃথক উপাদানে রূপান্তর করা

  4. পাইথন প্রোগ্রাম লিস্টের প্রথম ও শেষ উপাদান ইন্টারচেঞ্জ করা