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

পাইথন: ৩D ম্যাট্রিক্সকে কোঅর্ডিনেট লিস্টে রূপান্তর করা

ত্রিমাত্রিক (3D) ম্যাট্রিক্সকে কোঅর্ডিনেট লিস্টে রূপান্তর করার জন্য zip() এবং লিস্ট কম্প্রিহেনশন ব্যবহার করা হয়। প্রতিটি সাব-ম্যাট্রিক্সের সংশ্লিষ্ট এলিমেন্টগুলোকে জোড়া বানানো হয়।

উদাহরণ

matrix_3d = [
    [['He', 'Wi'], ['llo', 'll']],
    [['Pyt', 'i'], ['hon', 'sFun']],
    [['Ho', 'g'], ['pe', 'ood']]
]

print("৩D ম্যাট্রিক্স:")
for layer in matrix_3d:
    print("  ", layer)

# zip এবং লিস্ট কম্প্রিহেনশন দিয়ে কোঅর্ডিনেট লিস্ট
coordinates = [
    elem 
    for sub1, sub2 in matrix_3d 
    for elem in zip(sub1, sub2)
]

print("\nকোঅর্ডিনেট লিস্ট:")
print(coordinates)

আউটপুট

৩D ম্যাট্রিক্স:
   [['He', 'Wi'], ['llo', 'll']]
   [['Pyt', 'i'], ['hon', 'sFun']]
   [['Ho', 'g'], ['pe', 'ood']]

কোঅর্ডিনেট লিস্ট:
[('He', 'llo'), ('Wi', 'll'), ('Ho', 'pe'), ('g', 'ood'), ('Pyt', 'hon'), ('i', 'sFun')]

ব্যাখ্যা

  1. প্রথম লেয়ার: zip(['He', 'Wi'], ['llo', 'll']) → ('He', 'llo'), ('Wi', 'll')
  2. দ্বিতীয় লেয়ার: zip(['Ho', 'g'], ['pe', 'ood']) → ('Ho', 'pe'), ('g', 'ood')
  3. তৃতীয় লেয়ার: zip(['Pyt', 'i'], ['hon', 'sFun']) → ('Pyt', 'hon'), ('i', 'sFun')
  4. সব মিলিয়ে ফ্ল্যাটেন করা হয়

সাধারণীকৃত ফাংশন


def matrix3d_to_coordinates(matrix):
    """যেকোনো ৩D ম্যাট্রিক্স (লিস্ট অফ লিস্ট অফ লিস্ট) কে কোঅর্ডিনেট লিস্টে রূপান্তর"""
    return [
        pair 
        for layer in matrix 
        for pair in zip(layer[0], layer[1])
    ]

# ব্যবহার
coords = matrix3d_to_coordinates(matrix_3d)

এটি ধরে নিচ্ছে প্রতিটি লেয়ারে ঠিক ২টি সাব-লিস্ট আছে। পরিবর্তনশীল স্ট্রাকচারের জন্য লুপ ব্যবহার করুন।

  1. পাইথনে ম্যাট্রিক্স ৯০ ডিগ্রি ঘুরিয়ে দেওয়া (Rotate Matrix)

  2. পাইথনে লিস্ট এক্সপ্যানশন - প্রতিটি এলিমেন্ট K বার রিপ্লিকেট করা

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

  4. পাইথনে ম্যাট্রিক্স ট্রান্সপোজ (Transpose) করা