कुछ मैट्रिक्स को देखते हुए, मुझे मैट्रिक्स में सभी पंक्तियों को दर्पण करने की आवश्यकता है। उदाहरणलूप/रिकर्सन के साथ मैट्रिक्स में पंक्तियों को मिरर करना?
लिए[[2, 1],
[4, 3]]
बन जाएगा
[[1, 2],
[3, 4]]
मैं (2 एक्स 2) -case लिए यह करने में कामयाब रहे। लेकिन मैं मुसीबत कुछ इस तरह मिरर आ रही हैं:
[[1, 2, 3, 4],
[1, 2, 3, 4]]
यह बनने के लिए
[[4, 3, 2, 1],
[4, 3, 2, 1]]
मैं साथ छोरों/प्रत्यावर्तन ऐसा करना चाहते हैं। यदि मैं रिकर्सन का उपयोग करता हूं, तो शायद मेरे पास मूलभूत कदम होगा कि आंतरिक अधिकांश तत्व पहले स्वैप हो जाएंगे, और फिर यहां से हम बाहरी तत्वों सहित और उन्हें भी स्वैप करके मैट्रिक्स को बड़ा बना देंगे। हालांकि, मुझे रिकर्सन चरण में परेशानी हो रही है। आंतरिक तत्वों को स्वैप करने के बाद, मैं मैट्रिक्स में आंतरिक अधिकांश तत्वों को शामिल करना चाहता हूं, और उन्हें भी स्वैप करना चाहता हूं, और फिर जब तक हम बाहरी तत्वों तक नहीं पहुंच जाते, तब तक इस तरह जारी रखें। कोड में इसे कैसे कार्यान्वित किया जा सकता है? मैंने अभी तक यह किया है:
matrix = [[1, 2, 3, 4],
[1, 2, 3, 4]]
def mirror(matrix):
# This corresponds to the basic step. The two inner most elements get swapped.
if len(matrix) == 2:
for i in range(len(matrix)):
for j in range(len(matrix)):
# Store one element in a temporal variable
temp = matrix[i][j]
matrix[i][j] = matrix[i][len(matrix) - 1]
matrix[i][len(matrix)-1] = temp
return matrix
else:
# Recursion step
for i in range(len(matrix)):
for j in range(len(matrix)):
return (matrix + mirror(matrix[(len(matrix) // 2) - 1 : len(matrix)]))
रिकर्सन चरण गलत है मुझे लगता है। मैंने स्लाइस ऑपरेटर का उपयोग करने की कोशिश की, लेकिन मुझे यकीन नहीं है कि यह सही तरीके से कैसे किया जाना चाहिए। इस समस्या के साथ किसी भी मदद की सराहना की जाएगी।
यह पुनरावर्ती होने के लिए है? –
ठीक है, मैंने केवल पाइथन के साथ लूप, रिकर्सन, सूचियां, खोज एल्गोरिदम और फ़ंक्शंस का अध्ययन किया है। तो मेरे सीमित ज्ञान के आधार पर, मुझे लगता है कि इस समस्या से निपटने के लिए रिकर्सन सबसे आसान/सबसे प्रभावी तरीका है। – Kamil
'[सब [:: - 1] उप में एआर के लिए]' सबसे सरल समाधान है, क्या आप मूल सरणी को बदलना चाहते हैं? –