我已使用以下内容将列表中的项目转换为字符串: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
提交
取消