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

পাইথনে বাইনারি এলিমেন্ট লিস্ট গ্রুপিং

মান লেই আমাদের একটি লিস্ট অফ লিস্ট আছে যাতে প্রতিটি সাবলিস্টে দুটি উপাদান রয়েছে। লিস্টের অনেক সাবলিস্টের সাথে একটি উপাদান কমন। আমাদের একটি ফাইনাল লিস্ট তৈরি করতে হবে যেটা কমন উপাদান অনুযায়ী সাবলিস্টগুলো গ্রুপ করে দেখাবে।

সেট এবং ম্যাপের সাথে

দেওয়া লিস্টে প্রথম উপাদানটি একটি স্ট্রিং এবং দ্বিতীয় উপাদানটি একটি নম্বর। তাই আমরা একটি টেম্প লিস্ট তৈরি করি যেটা প্রতিটি সাবলিস্টের দ্বিতীয় উপাদান ধারণ করবে। তারপর প্রতিটি সাবলিস্টকে টেম্প লিস্টের প্রতিটি উপাদানের সাথে কমপেয়ার করি এবং একটি লুপ ডিজাইন করি সেগুলো গ্রুপ করার জন্য।

উদাহরণ

listA = [['Mon', 2], ['Tue', 3], ['Wed', 3], ["Thu", 1], ['Fri', 2], ['Sat', 3], ['Sun', 1]]
# সেট এবং ম্যাপের সাথে
temp = set(map(lambda i: i[1], listA))
res = [[j[0] for j in listA if j[1] == i] for i in temp]
# ফলাফল
print("The list with grouped elements is: \n", res)

আউটপুট

উপরের কোডটি রান করলে নিচের ফলাফলটি মিলবে −

The list with grouped elements is: [['Thu', 'Sun'], ['Mon', 'Fri'], ['Tue', 'Wed', 'Sat']]

groupby এবং itemgetter-এর সাথে

itemgetter ফাংশন প্রতিটি সাবলিস্টের দ্বিতীয় উপাদান পাওয়ার জন্য ব্যবহৃত হয়। তারপর itemgetter ফাংশন থেকে পাওয়া ফলাফলের ভিত্তিতে গ্রুপবাই ফাংশন প্রয়োগ করা হয়।

উদাহরণ

from itertools import groupby
from operator import itemgetter
listA = [['Mon', 2], ['Tue', 3], ['Wed', 3], ["Thu", 1], ['Fri', 2], ['Sat', 3], ['Sun', 1]]
# groupby ব্যবহার করে
listA.sort(key=itemgetter(1))
groups = groupby(listA, itemgetter(1))
res = [[i[0] for i in val] for (key, val) in groups]
# ফলাফল
print("The list with grouped elements is: \n", res)

আউটপুট

উপরের কোডটি রান করলে নিচের ফলাফলটি মিলবে −

The list with grouped elements is: [['Thu', 'Sun'], ['Mon', 'Fri'], ['Tue', 'Wed', 'Sat']]

defaultdict-এর সাথে

আমরা defaultdict ফাংশন প্রয়োগ করি যাতে সাবলিস্টের দ্বিতীয় উপাদানগুলো ডিকশনারির কি হয়। তারপর ফলাফল লিস্টে সাবলিস্টের প্রথম উপাদান থেকে মানগুলো অ্যাপেন্ড করি।

উদাহরণ

import collections
listA = [['Mon', 2], ['Tue', 3], ['Wed', 3], ["Thu", 1], ['Fri', 2], ['Sat', 3], ['Sun', 1]]
# defaultdict ব্যবহার করে
res = collections.defaultdict(list)
for val in listA:
    res[val[1]].append(val[0])
# ফলাফল
print("The list with grouped elements is: \n", res)

আউটপুট

উপরের কোডটি রান করলে নিচের ফলাফলটি মিলবে −

The list with grouped elements is: defaultdict(, {2: ['Mon', 'Fri'], 3: ['Tue', 'Wed', 'Sat'], 1: ['Thu', 'Sun']})
  1. পাইথনে ডেসিমেল থেকে বাইনারি লিস্ট কনভার্ট করুন

  2. পাইথনে পূর্ণসংখ্যার তালিকার প্রতিটি উপাদানে K যোগ করা

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

  4. পাইথন প্রোগ্রাম: বাইনারি সার্চ অ্যালগরিদম