python 面試題 均分一維陣列 列表

2021-09-17 19:40:58 字數 3345 閱讀 3025

將一維陣列(列表)均分n份,如果不能均分,填充0補償

方案一 暴力解決方案

if 均分:

均分處理;

else

: 按照不能均分處理:

**難點:不能均分的時候,如何考慮判斷條件**

l =[1

,2,3

,4,5

,6,7

,8,9

,10,11

,12,13

]m =

5# 第二種方案,均分後不夠時在新增0

new_l_i =

iflen

(l)%m ==0:

ll =

int(

len(l)

/ m)

# n/m 為整數,直接均分

for i in

range

(m):

for j in

range

(ll * i, ll *

(i +1)

):)if j == ll *

(i +1)

-1:print

("new_l_%s="

% i, new_l_i)

continue

new_l_i =

else

:# n/m 不能整除

ll =

int(

len(l)

/ m)+1

# 每乙份元素的個數

for i in

range

(m):

# 均分為m份,int(len(l)/ll)為列表l的長度除以新列表元素的個數,即新分的個數

if i <

int(

len(l)

/ll)

:# 獲取前面可以均分的部分,每個新列表共有ll個元素

for j in

range

(ll * i, ll *

(i +1)

):)print

("new_l_%s="

% i, new_l_i)

new_l_i =

if i ==

int(

len(l)

/ll)

:for j in

range

(ll * i,

len(l)):

)for j in

range

(ll-

len(new_l_i)):

0)print

("new_l_%s="

% i, new_l_i)

new_l_i =

if i >

int(

len(l)

/ ll)

:for j in

range

(ll):0

)print

("new_l_%s="

% i, new_l_i)

new_l_i =

方案二 先填充在均分

直接在列表後面新增所需要0的個數,在進行均分,難點就是如何獲取0的個數,我的理解是這樣:

( in

t(一維

陣列(列

表的)的

長度均分

的份數)

+1)∗

均分的份

數−一維

陣列(列

表的)的

長度

(int(\frac)+1)*-

(int(均

分的份數

一維陣列

(列表的

)的長度

​)+1

)∗均分

的份數−

一維陣列

(列表的

)的長度

l =[1

,2,3

,4,5

,6,7

,8,9

,10,11

,12,13

]m =

5 new_l_i =

# 放入新列表

for j in

range((

int(

len(l)

/m)+1)

*m-len

(l)):0

)print

(l)# 均分

ll =

int(

len(l)

/m)for i in

range

(m):

for j in

range

(ll * i, ll *

(i +1)

):)if j == ll *

(i +1)

-1:print

("new_l_%s="

%i,new_l_i)

continue

new_l_i =

new_l_0=[1

,2,3

]new_l_1=[4

,5,6

]new_l_2=[7

,8,9

]new_l_3=[10

,11,12

]new_l_4=[13

,0,0

]new_l_5=[0

,0,0

]

def

third

(l,m)

:"""

將一維列表均分成m份

:param l:

:param m:

:return:

"""new_l_i =

# 放入新列表

for j in

range((

int(

len(l)

/ m)+1

)* m -

len(l)):

0)print

(l)for i in

range(0

,len

(l),

int(

len(l)

/m))

:yield l[i:i +

int(

len(l)

/m)]

td = third(l,6)

for i in td:

print

(print

("new_l_%s="

% i, i)

[1,

2,3]

[4,5

,6][

7,8,

9][10

,11,12

][13,

0,0]

[0,0

,0]

Python面試題(一)

def extendlist val,list return list list1 extendlist 10 list2 extendlist 123,list3 extendlist a print list1 print list2 print list3 執行結果和解析過程 10,a 123...

python面試題(一)

整理了一些python面試可能遇到的題,提供給大家,希望能對大家有用!1.下面的 會輸出什麼?def extend list val,list return list list1 extend list 10 list2 extend list 123,list3 extend list a pri...

python面試題(一)

最近因為找工作,所以在牛客網上刷了一些題,想在部落格上記錄下來自己的想法 寫的不好還請大家多指教。1.二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含...