將一維陣列(列表)均分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.二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含...