猿问

将列表项转换为字符串,语法问题?

我已使用以下内容将列表中的项目转换为字符串:


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"

两者的结果是一样的。在这种情况下,使用方括号而不是括号(或反之亦然)是否重要?


慕丝7291255
浏览 142回答 2
2回答

婷婷同学_

当您编写as_str = [str (y) for y in target_ls]它时,它会创建一个列表并保存在内存中,但它as_str = (str (y) for y in target_ls)是一个生成器,因此一旦您对其进行迭代,它就不会将任何内容保存在内存中,它将执行“延迟执行”并为您提供所需的结果。生成器具有内存效率,但只能使用一次。

动漫人物

括号分配一个新列表。如果你有很多元素,这将不必要地分配大量内存;使用括号。括号创建一个生成器。一个生成器只能使用一次;如果需要as_str再次使用,请使用括号。
随时随地看视频慕课网APP

相关分类

Python
我要回答