Python二維陣列轉為一維陣列的四種方法

2021-10-04 08:36:09 字數 2112 閱讀 8755

已知a = [[4, 0, 1], [9, 2, 7], [8, 12, 90]]

列表推導式
[i for j in a for i in j]
itertools
from itertools import chain

list

(chain.from_iterable(a)

)

sum小技巧
sum

(a,[

])

operator
import operator

from functools import

reduce

print

(reduce

(operator.add, a)

)

def

fun(arr, lines)

: total_matrix =[[

0]* lines for i in

range

(lines)

]""" 二維矩陣轉為一維矩陣 """

num =

[i for j in arr for i in j]

num =

sorted

(num)

show_num =

0 col = lines -

1 row = lines -

1 start_line =

0def

print_ju

(start_line, col, row, show_num)

:if row ==0:

if lines %2!=

0:total_matrix[lines //2]

[lines //2]

= lines * lines

else

:for i in

range

(start_line, col)

:# 列印上橫行

total_matrix[start_line]

[i]= num[show_num]

show_num +=

1for i in

range

(start_line, row,1)

:# 列印右豎行

total_matrix[i]

[col]

= num[show_num]

show_num +=

1for i in

range

(row, row - col + start_line,-1

):# 列印下橫行

total_matrix[row]

[i]= num[show_num]

show_num +=

1for i in

range

(col, col - row + start_line,-1

):# 列印左邊豎行

total_matrix[i]

[row - col + start_line]

= num[show_num]

show_num +=

1return print_ju(start_line +

1, row -

1, col -

1, show_num)

print_ju(start_line, row, col, show_num)

for i in total_matrix:

for x in i:

print

(format

(x,'3'

), end=

' ')

print()

if __name__ ==

'__main__'

: n =

int(

input

('請輸入螺旋矩陣的行數:'))

arr =[[

4,0,

1],[

9,2,

7],[

8,12,

90]] fun(arr, n)

一維陣列轉為二維陣列

真是應該補一補資料結構,真高這個程式!do while not eof 1 連續讀入乙個txt檔案到inputdata中 line input 1,inputdata if inputdata then 分割為一維陣列splitdata splitdata split inputdata,end i...

mysql二維轉一維 二維陣列轉為一維陣列

1.很多時候會遇到二維陣列,轉為一維陣列的時候會很苦惱,尤其是剛剛接觸php的phper。如下 將 arr轉化為一維陣列 arr array array uuid aaaaa array uuid bbbbb array uuid ccccc array uuid sssss array uuid ...

陣列(一維陣列 二維陣列)

陣列概述 c 陣列從零開始建立索引,即陣列索引從零開始。c 中陣列的工作方式與在大多數其他流行語言中的工作方式類似。但還有一些差異應引起注意。這些其實和泛型有些類似,陣列的操作沒有泛型方便,但是效能卻不是泛型所能比擬的 宣告陣列時,方括號 必須跟在型別後面,而不是識別符號後面。在c 中,將方括號放在...