所以我試圖實作一個函式ptt(L:List[int],k:int),該函式回傳一個包含 L 磁區的嵌套串列,其中串列的每個元素本身就是一個包含恰好 k 個元素的串列(最后一個磁區可能少于 k 個元素)。例如,當L = [1,2,3,4,5,6,7]和 時k = 2,partition(L, k)回傳[[1,2],[3,4],[5,6],[7]]。這里還有幾個例子。
assert ptt([1,2,3],2) == [[1,2],[3]]
assert ptt([1,2,3],3) == [[1,2,3]]
assert ptt([1,2,3,4],1) == [[1],[2],[3],[4]]
assert ptt([1,2,3,4],2) == [[1,2],[3,4]]
這是我對代碼的嘗試...
def ptt(L, k):
if (L == 0 or k == 0 or k > L):
return 0
if (k == 1 or k == L):
return 1
return (k * ptt(L - 1, k)
ptt(L - 1, k - 1))
但是,這根本不起作用......我應該對我的代碼進行哪些更改以確保它有效?
uj5u.com熱心網友回復:
對不起,這聽起來很刺耳,但既然你正在學習編程,你應該學會使用互聯網上最好的資源......谷歌搜索。大多數對編程任務的初步嘗試已經解決(很多次)并且解決方案很容易獲得。
一個簡單的查詢“將串列磁區到子串列 python”會產生幾個來源。嘗試: 將 python 串列拆分為其他“子串列”,即較小的串列
解決辦法是
chunks = [data[x:x k] for x in range(0, len(data), k)]
uj5u.com熱心網友回復:
此代碼與您的方法非常不同,但它會產生您正在尋找的結果:
def partition(nums, k):
result = []
for i in range(0, len(nums), k):
result.append(nums[i:i k])
return result
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367483.html
下一篇:用反引號替換單引號
