我需要在遞歸函數中分配列表的幫助。當遞歸函數在迭代中時,如何爲列表中的成員分配一個值給列表中的成員?在Python中遞歸函數期間分配列表
0
A
回答
0
,而使用它來驅動迭代你不能改變一個可迭代的,但你可以很容易地使一個迭代來保存你的結果,並把它傳遞給遞歸函數作爲參數:
results = []
def recurse(level, results):
level += 1
results.append(level)
if level < 10: recurse(level, results)
print recurse(0, results)
>>> [1,2,3,4,5,6,7,8,9,10]
但在這個例子中,你可以不做
for item in results:
recurse (item, results)
0
我不知道如果我理解得你的問題,但我認爲這是這樣的:
# put "s" on 2nd position of the list ['l', 'u', 'c', 'a', 's']
# so the result should be ['l', 's', 'c', 'a', 's']
如果是這樣,請記住,有更好的方法來在Python中完成它。因此,這裏的代碼:
def assign_in_position(elem, my_list, pos):
first = my_list[0]
tail = my_list[1:]
if pos == 0:
return [elem] + tail
return [first] + assign_in_position(elem, tail, pos-1)
如果您在Python是新的,只有一個東西,可奇怪的是(切片,my_list[1:]
)。這個功能也是一種越野車,但它是建議性的。它適用於我的第一個示例,但如果您正在學習遞歸,那麼您應該學習如何檢測和解決常見的遞歸問題。
出於好奇,這是爲同一任務的Haskell代碼:
assign_in_pos elem [] _ = [elem]
assign_in_pos elem (_:t) 0 = elem:t
assign_in_pos elem (h:t) pos = h:assign_in_pos elem t (pos-1)
相關問題
- 1. 列表python的遞歸最大函數
- 2. 遞歸python函數產生anagrams列表
- 3. 在堆上分配vs在遞歸函數中分配堆棧
- 4. Python中的遞歸函數在列表中添加奇數值
- 5. 遞歸Python函數在列表中查找最小數字
- 6. 遞歸函數和列表
- 7. 列表的遞歸函數
- 8. 遞歸列表函數
- 9. 在Python中使用遞歸函數中的新列表
- 10. 遞歸函數Python
- 11. 遞歸函數python
- 12. Python列表遞歸
- 13. 的Python:遞歸函數在列表中找到
- 14. 遞歸和列表在Python
- 15. 遞歸列表在python
- 16. 將內存分配給遞歸函數
- 17. Python遞歸函數不遞歸
- 18. 傳遞函數之間的列表Python
- 19. 遞歸函數在陣列
- 20. 期間遞歸
- 21. 在python中產生遞歸函數
- 22. Python:在遞歸函數中的os.walk()
- 23. 在Python中樹的遞歸函數
- 24. 在Python 3中構建遞歸函數
- 25. 在Python中開發遞歸函數
- 26. 在Python中編寫遞歸函數
- 27. 在Python中裝飾遞歸函數
- 28. 在Python中遞歸地擴展列表
- 29. 遞歸函數生成分層陣列
- 30. 返回遞歸函數中的字符串列表python
你需要把它作爲函數的參數 – matino
你需要像我們做的,例如,Haskell的?你的問題你能更清楚嗎?我不認爲遞歸在Python中很流行(特別是當我們談論列表時)。 –