使用 return 從循環中擷取多個值:它們可以儲存在清單中嗎?
在 Discord 機器人開發中,所需的函數傳回多個值是一個挑戰,特別是當它們利用循環時。使用 print 在本機控制台中顯示值可能不足以進行聊天通訊。本文深入探討如何從循環中傳回多個值,探索如何使用列表來儲存這些值。
問題分解
旨在列印的程式碼片段提供了來自名為cal 的全域字典的資料:
def show_todo(): for key, value in cal.items(): print(value[0], key)
但是,Discord機器人需要返回數據以供進一步使用加工。嘗試在循環內使用 return 無法產生所需的結果。
使用 Yield
一種解決方案是使用 Yield 語句的生成器函數。這允許函數在每次迭代時暫停和恢復執行:
def show_todo(): for key, value in cal.items(): yield value[0], key
然後可以使用 list(show_todo()) 收集值或透過使用 for 迴圈進行迭代。
附加到清單
另一種方法是將值附加到清單中循環:
def show_todo(): my_list = [] for key, value in cal.items(): my_list.append((value[0], key)) return my_list
此方法儲存my_list 中的所有my_list 中的所有值,允許在循環完成後返回。
列表理解
For簡潔的程式碼,可以使用列表推導式:
def show_todo(): return [(value[0], key) for key, value in cal.items()]
此方法建立一個包含以下內容的清單: cal.
中的所有鍵值對以上是如何有效地從 Discord 機器人中的循環返回多個值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!