ত্রিমাত্রিক (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')]
ব্যাখ্যা
- প্রথম লেয়ার:
zip(['He', 'Wi'], ['llo', 'll'])→('He', 'llo'), ('Wi', 'll') - দ্বিতীয় লেয়ার:
zip(['Ho', 'g'], ['pe', 'ood'])→('Ho', 'pe'), ('g', 'ood') - তৃতীয় লেয়ার:
zip(['Pyt', 'i'], ['hon', 'sFun'])→('Pyt', 'hon'), ('i', 'sFun') - সব মিলিয়ে ফ্ল্যাটেন করা হয়
সাধারণীকৃত ফাংশন
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)
এটি ধরে নিচ্ছে প্রতিটি লেয়ারে ঠিক ২টি সাব-লিস্ট আছে। পরিবর্তনশীল স্ট্রাকচারের জন্য লুপ ব্যবহার করুন।