Ինչպե՞ս զուգակցել տարրերը հետևի տարրերի հետ Matrix Row-ում՝ օգտագործելով Python-ը:
Ծրագրավորման որոշ սցենարներում դուք կարող եք հանդիպել մի ժամանակի, երբ անհրաժեշտ է մատրիցաների յուրաքանչյուր տարր անընդմեջ զուգակցել հետևի տարրի հետ, այլ կերպ ասած այն տարրին, որը հայտնվում է թվից անմիջապես հետո: Այսպիսով, այս հոդվածում մենք կդիտարկենք որոշ մեթոդներ և օրինակներ՝ տարրերը պայմաններին համապատասխան զուգակցելու համար:
Մատրիցա
Սրանք հզոր տվյալների կառուցվածքներ են, որոնք օգտագործվում են տողերում և սյունակներում կազմակերպված տարրերի հավաքածուները ներկայացնելու համար: Ինչպես մատրիցը, որն ունի n տող և m սյունակ, կկոչվի n * m մատրիցա:
Ահա մի քանի մեթոդներ, որոնք մենք կարող ենք կատարել մատրիցայի տարրերը զուգակցելու համար:
Nested Loop
Սա պարզ և առաջնային մեթոդ է, որը գալիս է մշակողի մտքում: Այստեղ մենք կարող ենք օգտագործել nested loops մատրիցի յուրաքանչյուր տողի վրա կրկնելու համար: Ներքին օղակում մենք կրկնում ենք տողի առաջին տարրից մինչև երկրորդից մինչև վերջին տարրը, քանի որ վերջինից հետո հաջորդ տարր չկա: curr և nxt փոփոխականները պահում են ընթացիկ տարրը և դրան հաջորդող տարրը, որը հետևի տարրն է:
Օրինակ
mat= [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
def pair_with_rear(mat):
for row in mat:
for i in range(len(row) - 1):
curr = row[i]
nxt = row[i + 1]
print(f"Pair: {curr} - {nxt}")
pair_with_rear(mat)
Ցուցակի ըմբռնում
Այս մեթոդը օգտագործում է ցուցակի ըմբռնումը զույգ տարրեր ստեղծելու համար: Այս ըմբռնումը անցնում է մատրիցի յուրաքանչյուր տողի վրա և յուրաքանչյուր տողում այն զուգավորում է յուրաքանչյուր տարրը հետևի տարրի հետ՝ օգտագործելով (տող[i], տող[i+1]), որը պահվում է զույգերի ցանկում:
Օրինակ
mat = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
def pair_with_rear(mat):
pairs = [(row[i], row[i + 1])
for row in mat
for i in range(len(row) - 1)]
for pair in pairs:
print(f"Pair: {pair[0]} - {pair[1]}")
pair_with_rear(mat)
Արդյունք
Pair: 1 - 2
Pair: 2 - 3
Pair: 4 - 5
Pair: 5 - 6
Pair: 7 - 8
Pair: 8 - 9
Ցանկի սեղմման և զիփի մեթոդը
Այս մեթոդը օգտագործում է zip() ֆունկցիան ցուցակի ընկալման հետ համատեղ՝ յուրաքանչյուր տողի տարրը զուգակցելու համար: Այս ֆունկցիան վերցնում է տարրը յուրաքանչյուր կրկնությունից (ներքևում գտնվող ծրագրում դա ընթացիկ տող է և կտրատված շարքը երկրորդ դիրքի տարրերի հետ) և դրանք միավորում է զույգերի, որոնք պահվում են զույգերի ցանկում:
Օրինակ
mat = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
def pair_with_rear(mat):
pairs = [(curr, nxt)
for row in mat
for curr, nxt in zip(row, row[1:])]
for pair in pairs:
print(f"Pair: {pair[0]} - {pair[1]}")
pair_with_rear(mat)
Pair: 1 - 2
Pair: 2 - 3
Pair: 4 - 5
Pair: 5 - 6
Pair: 7 - 8
Pair: 8 - 9
NumPy գրադարան
Մենք օգտագործում ենք NumPy գրադարանը մատրիցայի արդյունավետ գործընթացի համար: Նախ, մենք հարթեցրինք մատրիցը, որպեսզի այն վերածենք 1D զանգվածի, օգտագործելով np.array(mat).flatten(): Այնուհետև օգտագործելով ցուցակի ըմբռնումը, մենք զույգեր ենք ստեղծում՝ կրկնելով հարթեցված զանգվածի վրա և յուրաքանչյուր տարր զուգակցում իր հետևի կամ հաջորդ տարրի հետ:
Օրինակ
import numpy as np
mat = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
def pair_with_rear(matrix):
flattened_matrix = np.array(matrix).flatten()
pairs = [(flattened_matrix[i], flattened_matrix[i + 1])
for i in range(len(flattened_matrix) - 1)]
for pair in pairs:
print(f"Pair: {pair[0]} - {pair[1]}")
pair_with_rear(mat)
Արդյունք
Pair: 1 - 2
Pair: 2 - 3
Pair: 3 - 4
Pair: 4 - 5
Pair: 5 - 6
Pair: 6 - 7
Pair: 7 - 8
Pair: 8 - 9
Itertools Linerary
Մենք օգտագործում ենք Itertools գրադարանը՝ զուգակցման գործողությունները կարգավորելու համար: Այս մեթոդի Numpy Library մոտեցման նման, մենք նաև հարթեցնում ենք զանգվածը 1D մատրիցի մեջ և միացնում մատրիցայի բոլոր տողերը մեկ 1D կրկնվող զանգվածի մեջ: Այնուհետև, օգտագործելով ցուցակի ընկալումը, զույգերը ստեղծվում են՝ կրկնելով հարթեցված ցուցակը, որտեղ ընթացիկ տարրը նշվում է flatten_mat[i]-ով, իսկ հաջորդ տարրը նշվում է flatten_mat[i+1-ով: ]որը պահվում է զույգերի ցանկում:
Օրինակ
import itertools
mat = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
def pair_with_rear(matrix):
flattened_matrix = list(itertools.chain.from_iterable(matrix))
pairs = [(flattened_matrix[i], flattened_matrix[i + 1])
for i in range(len(flattened_matrix) - 1)]
for pair in pairs:
print(f"Pair: {pair[0]} - {pair[1]}")
pair_with_rear(mat)
Արդյունք
Pair: 1 - 2
Pair: 2 - 3
Pair: 3 - 4
Pair: 4 - 5
Pair: 5 - 6
Pair: 6 - 7
Pair: 7 - 8
Pair: 8 - 9
Այսպիսով, դուք կարող եք ընտրել ցանկացած մեթոդ, որը ձեզ հարմարավետ է զգում: Մեթոդներից յուրաքանչյուրը հնարավորություն է տալիս տարրերը զուգակցել իր հետևի/հետագա տարրի հետ: