我已使用以下內容將列表中的項目轉換為字符串:target_ls = [w, x, y, z] as_str = (str (y) for y in target_ls) final_str = "\t".join(as_str) + "\n"但我注意到我也可以使用:as_str = [str (y) for y in target_ls]final_str = "\t".join(as_str) + "\n"兩者的結果是一樣的。在這種情況下,使用方括號而不是括號(或反之亦然)是否重要?
2 回答

婷婷同學_
TA貢獻1844條經驗 獲得超8個贊
當您編寫as_str = [str (y) for y in target_ls]
它時,它會創建一個列表并保存在內存中,但它as_str = (str (y) for y in target_ls)
是一個生成器,因此一旦您對其進行迭代,它就不會將任何內容保存在內存中,它將執行“延遲執行”并為您提供所需的結果。
生成器具有內存效率,但只能使用一次。

動漫人物
TA貢獻1815條經驗 獲得超10個贊
括號分配一個新列表。如果你有很多元素,這將不必要地分配大量內存;使用括號。
括號創建一個生成器。一個生成器只能使用一次;如果需要as_str
再次使用,請使用括號。
添加回答
舉報
0/150
提交
取消