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

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

নেস্টেড লিস্ট (ম্যাট্রিক্স) কে প্রতিটি সারিতে None কতবার আছে তা অনুযায়ী সাজানোর জন্য কাস্টম কি ফাংশন, লিস্ট কম্প্রিহেনশন এবং len() ব্যবহার করা হয়।

উদাহরণ


def count_none(row):
    """সারিতে None কতবার আছে তা গিয়ে ফেরত দেয়"""
    return len([x for x in row if x is None])

my_list = [[None, 24], [None, 33, 3, None], [42, 24, 55], [13, None, 24]]
print("মূল ম্যাট্রিক্স:")
for row in my_list:
    print("  ", row, "→ None কাউন্ট:", count_none(row))

# None কাউন্ট অনুযায়ী সর্ট (আরোহী: কম None প্রথমে)
my_list.sort(key=count_none)

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

আউটপুট


মূল ম্যাট্রিক্স:
   [None, 24] → None কাউন্ট: 1
   [None, 33, 3, None] → None কাউন্ট: 2
   [42, 24, 55] → None কাউন্ট: 0
   [13, None, 24] → None কাউন্ট: 1

সাজানো ম্যাট্রিক্স:
   [42, 24, 55]
   [None, 24]
   [13, None, 24]
   [None, 33, 3, None]

ব্যাখ্যা

  • [x for x in row if x is None] — সারিতে থাকা সব None বের করে লিস্ট বানায়
  • len(...) — তার দৈর্ঘ্য = None কাউন্ট
  • sort(key=count_none) — এই কাউন্ট অনুযায়ী সর্ট

ল্যাম্বডা দিয়ে সংক্ষিপ্ত


my_list.sort(key=lambda row: sum(1 for x in row if x is None))
# অথবা
my_list.sort(key=lambda row: row.count(None))  # লিস্টে count() মেথড আছে

row.count(None) সবচেয়ে সহজ এবং দ্রুত।

অবরোহী ক্রম (বেশি None প্রথমে)


my_list.sort(key=lambda row: row.count(None), reverse=True)
  1. পাইথন প্রোগ্রাম: ম্যাট্রিক্সের সারি কাস্টম এলিমেন্ট কাউন্ট দিয়ে সর্ট করা

  2. পাইথনে লিস্ট এলিমেন্টের ফ্রিকোয়েন্সি (বারবারতা) গণনা

  3. পাইথনে ম্যাট্রিক্সের কলাম সোর্ট করুন

  4. পাইথনে sort() মেথড