鱼C论坛

 找回密码
 立即注册
查看: 896|回复: 4

两者打印出来有什么区别吗

[复制链接]
发表于 2018-11-26 13:57:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼老师在课里举的例子,存在一个文件f,里面是一个多行的字符串。将文件f以不同的方式打印出来。第一种是转化为列表,然后打印。
f.seek(0,0)
lines = list(f)
for each_line in lines:
        print each_line
第二种是直接对文件进行打印。
f.seek(0,0)
for each_line in f:
        print(each_line)


在接下来的一讲中对第二种方法中的each_line进行了分片操作,说明第二种方法中它是一行一行的打印的。
这样我就有了一个疑问,第一种方法是对文件中的字符串怎样打印的?已经转换成了列表,包含一个字符串元素,应该是逐个字符打印?一行一行打印?还是直接对整个字符串元素进行打印?

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-26 14:05:40 | 显示全部楼层
两种方法打印出来的结果都一样的吧
调用open打开的f本身就是iterable的,所以可以用工厂函数list转换。只是第二种方法更节约代码和内存。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-26 14:40:21 | 显示全部楼层
喜欢吃菠菜 发表于 2018-11-26 14:05
两种方法打印出来的结果都一样的吧
调用open打开的f本身就是iterable的,所以可以用工厂函数list转换。只 ...

对的,打印出来的结果都是一样的,我比较好奇的是使用list转换之后每一个each_line是一个字符呢,还是一行字符,或者是整个字符串呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-26 14:51:35 | 显示全部楼层
第一个都没有括号,list转换按行分
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-26 15:01:05 | 显示全部楼层
Bonjour黎明 发表于 2018-11-26 14:40
对的,打印出来的结果都是一样的,我比较好奇的是使用list转换之后每一个each_line是一个字符呢,还是一 ...

转换后是一行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-10 08:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表