为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕丝7291255 2021-07-23 18:03:32
我已使用以下内容将列表中的项目转换为字符串: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)是一个生成器,因此一旦您对其进行迭代,它就不会将任何内容保存在内存中,它将执行“延迟执行”并为您提供所需的结果。

生成器具有内存效率,但只能使用一次。


查看完整回答
反对 回复 2021-07-28
?
动漫人物

TA贡献1815条经验 获得超10个赞

括号分配一个新列表。如果你有很多元素,这将不必要地分配大量内存;使用括号。

括号创建一个生成器。一个生成器只能使用一次;如果需要as_str再次使用,请使用括号。


查看完整回答
反对 回复 2021-07-28
  • 2 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信