所以我有一個(gè) 2D 數(shù)組,看起來(lái)像:[[0, 1, 1][1, 0, 0][0,0,1]]所有值都存儲(chǔ)為整數(shù),但它們代表實(shí)際位。第一行中的值被認(rèn)為是最重要的。假設(shè)每列都是基于列中位的某個(gè)整數(shù),我想按降序?qū)α羞M(jìn)行排序,使其看起來(lái)像[[1,1,0][0,0,1][0,0,1]]. 但是,我對(duì)如何在 python 中實(shí)現(xiàn)這一點(diǎn)非常迷茫。有人建議我使用基數(shù)排序,但我不知道這對(duì)我的情況有什么幫助。我寫(xiě)了下面的兩個(gè)矩陣,這樣更容易形象化。011 110 100 001 001 100我的方法:讀取每一列,轉(zhuǎn)換為 int,對(duì) int 進(jìn)行排序,映射回列。但是如果我使用具有維度的矩陣,這種方法可能會(huì)非常復(fù)雜1000x10000但我覺(jué)得應(yīng)該有更聰明的方法來(lái)做到這一點(diǎn),尤其是在 python 中。我應(yīng)該如何處理這個(gè)問(wèn)題?
2 回答

波斯汪
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
正如我所說(shuō)的轉(zhuǎn)置,排序,轉(zhuǎn)回:
a = [[0, 1, 1],[1, 0, 0],[0,0,1]]
a = list(zip(*a))
a.sort(reverse=True)
a = list(map(list,zip(*a)))

瀟湘沐
TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
嘗試這個(gè):
a = [[0, 1, 1], [1, 0, 0], [0, 0, 1]]
b = list(map(list, zip(*a)))
c = sorted(b, reverse=True)
d = list(map(list, zip(*c)))
添加回答
舉報(bào)
0/150
提交
取消