亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么python不返回引用?

為什么python不返回引用?

千巷貓影 2022-08-25 14:01:33
我有一個關于Python如何返回值的問題。下面是我簡單的python代碼練習遞歸函數。def brackets(ans, n, cur, open, close):    if len(cur) == n*2:        ans.append(cur)   # <---l.1        return ans        # <---l.2       if open < n:        brackets(ans, n,cur+"(",open+1,close)    if open > close:        brackets(ans, n,cur+")",open,close+1)ans = []ret = brackets(ans, 2, "", 0,0)  # <---l.3print(ans)print(ret)===== return:['(())', '()()']None我想我修改了l.1行上的列表對象并返回它,并且在行l.2上,我傳遞了第l.3行上的引用。但是當我打印值和時,不包含與 相同的值。ansansansretretans當然,我只是打印出來以獲得正確答案,但我期望Python初始化變量并分配返回引用到行l.3。ansretbracketsret我對python如何通過函數傳遞引用感到困惑。請讓我知道相關文件或答案。
查看完整描述

1 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

如果的長度不是 ,則該函數不返回任何值。說實話,要知道它應該返回什么并不容易,因為你還沒有發布一些預期的結果。也就是說,這里有一些選擇:curn*2brackets()


始終返回遞歸調用的值:


 if open < n:

     return brackets(ans, n,cur+"(",open+1,close)


 if open > close:

     return brackets(ans, n,cur+")",open,close+1)

在這種情況下,這將是最終結果:


 ['(())']

 ['(())']


在函數末尾返回:ans


 return ans

這將是輸出:


 ['(())', '()()']

 ['(())', '()()']


查看完整回答
反對 回復 2022-08-25
  • 1 回答
  • 0 關注
  • 110 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號