[英]which of these for-loops is more efficient/the better way to code the loop
python中這兩個for循環哪個更好? 我已經“假設”編譯器足夠聰明,可以只執行 json.loads 一次,並且自己將數據存儲在一個臨時變量中,以便它可以維護處理 for 循環所需的迭代器。 但后來我開始懷疑我是否弄錯了,第一種風格會導致不必要的額外步驟。
for employee in json.loads(response.content)
或者
temp = json.loads(response.content)
for employee in temp
盡管兩者本質上相同,但有一個很好的理由支持臨時值:它可以讓您在嘗試迭代結果之前捕獲對json.loads
的調用中的任何錯誤。 這與保持try
語句中的代碼盡可能集中是一致的。
try:
employees = json.loads(response.content)
except JSONDecodeError:
# Maybe log an error message
# Maybe just reraise the exception
employees = []
for employee in employees:
...
從文檔中可以清楚地看出:
for_stmt ::= "for" target_list "in" expression_list ":" suite ["else" ":" suite]
表達式列表被評估一次;
所以你的擔心是沒有根據的,第一種方法更可取,除非你想再次重用數據或者將它寫在for
行上會使行太長。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.