Python笔试题(一)

题目

  1. 以下两段代码,运行结束后的结果是什么?是否相同?原因是什么?

  1. 4G内存怎么读取一个5G的数据?

  2. 浅述深浅拷贝

答案

1.不相同

第一段结果为:

1
[{'num':0},{'num':1},{'num':2},{'num':3},{'num':4},{'num':5},{'num':6},{'num':7},{'num':8},{'num':9}]

第二段结果为:

1
[{'num':9},{'num':9},{'num':9},{'num':9},{'num':9},{'num':9},{'num':9},{'num':9},{'num':9},{'num':9}]

字典是可变类型,这里l.append(a)相当于执行了浅拷贝,每改变一次a中num的值,所有a的值都将改变

2.实现方法有两种。

实现方法一:

方法一的实现思路是通过生成器,一次读取少量数据,标准答案是根据文件实现,这里给出的例子是咸鱼学习bobby老师的课程时记录的例子,不知道如何使用生成器完成这个需求的朋友可以参考:

实现方法二:

在linux系统下使用split可以分割文件,对于多行文件可以使用按行分割的方式,对于单行的大文件可以采用按文件大小分割。

按文件行数分割:split -l 300 large_file.log smallfile_prefix

按文件大小分割:split -b 10m large_file.log smallfile_prefix

之后再按文件读取即可。

3.这个之前的文章讲过,直接点下面的直通车即可。

煌金 wechat
扫描关注公众号,回复「1024」获取为你准备的特别推送~
  • 本文作者: 煌金 | 微信公众号【咸鱼学Python】
  • 本文链接: http://www.xianyucoder.cn/2019/02/09/exma2/
  • 版权声明: 本博客所有文章除特别声明外,均采用 许可协议。转载请注明出处!
  • 并保留本声明和上方二维码。感谢您的阅读和支持!