文件操作

1.有一个jsonline格式的文件file.txt大小约为10K

def get_lines():with open('file.txt','rb') as f:return f.readlines()if __name__ == '__main__':for e in get_lines():process(e) # 处理每一行数据

现在要处理一个大小为10G的文件,但是内存只有4G,如果在只修改get_lines 函数而其他代码保持不变的情况下,应该如何实现?需要考虑的问题都有那些?

def get_lines():with open('file.txt','rb') as f:for i in f:yield i
from mmap import mmapdef get_lines(fp):with open(fp,"r+") as f:m = mmap(f.fileno(), 0)tmp = 0for i, char in enumerate(m):if char==b"\n":yield m[tmp:i+1].decode()tmp = i+1if __name__=="__main__":for i in get_lines("fp_some_huge_file"):print(i)

要考虑的问题有:内存只有4G无法一次性读入10G文件,需要分批读入分批读入数据要记录每次读入数据的位置。分批每次读取数据的大小,太小会在读取操作花费过多时间

模块与包

3.输入日期, 判断这一天是这一年的第几天?

import datetime
def dayofyear():year = input("请输入年份: ")month = input("请输入月份: ")day = input("请输入天: ")date1 = datetime.date(year=int(year),month=int(month),day=int(day))date2 = datetime.date(year=int(year),month=1,day=1)return (date1-date2).days+1

4.打乱一个排好序的list对象alist?

import random
alist = [1,2,3,4,5]
random.shuffle(alist)
print(alist)

数据类型  

5.现有字典 d= {'a':24,'g':52,'i':12,'k':33}请按value值进行排序?

sorted(d.items(),key=lambda x:x[1])
x[0]代表用key进行排序;x[1]代表用value进行排序。

7.请反转字符串 "aStr"?

print("aStr"[::-1])

8.将字符串 "k:1 |k1:2|k2:3|k3:4",处理成字典 {k:1,k1:2,...}

str1 = "k:1|k1:2|k2:3|k3:4"
def str2dict(str1):dict1 = {}for iterms in str1.split('|'):key,value = iterms.split(':')dict1[key] = valuereturn dict1
#字典推导式
d = {k:int(v) for t in str1.split("|") for k, v in (t.split(":"), )}

9.请按alist中元素的age由大到小排序

alist = [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]
def sort_by_age(list1):return sorted(alist,key=lambda x:x['age'],reverse=True)

10.下面代码的输出结果将是什么?

list = ['a','b','c','d','e']
print(list[10:])

代码将输出[],不会产生IndexError错误,就像所期望的那样,尝试用超出成员的个数的index来获取某个列表的成员。例如,尝试获取list[10]和之后的成员,会导致IndexError。然而,尝试获取列表的切片,开始的index超过了成员个数不会产生IndexError,而是仅仅返回一个空列表。这成为特别让人恶心的疑难杂症,因为运行的时候没有错误产生,导致Bug很难被追踪到。

11.写一个列表生成式,产生一个公差为11的等差数列

print([x*11 for x in range(10)])

12.给定两个列表,怎么找出他们相同的元素和不同的元素?

list1 = [1,2,3]
list2 = [3,4,5]
set1 = set(list1)
set2 = set(list2)
print(set1 & set2)
print(set1 ^ set2)

13.请写出一段python代码实现删除list里面的重复元素?

l1 = ['b','c','d','c','a','a']
l2 = list(set(l1))
print(l2)用list类的sort方法:
l1 = ['b','c','d','c','a','a']
l2 = list(set(l1))
l2.sort(key=l1.index)
print(l2)
也可以这样写:
l1 = ['b','c','d','c','a','a']
l2 = sorted(set(l1),key=l1.index)
print(l2)
也可以用遍历:
l1 = ['b','c','d','c','a','a']
l2 = []
for i in l1:if not i in l2:l2.append(i)
print(l2)

14.给定两个list A,B ,请用找出A,B中相同与不同的元素

A,B 中相同元素: print(set(A)&set(B)) A,B 中不同元素:  print(set(A)^set(B))

Python面试题解答——第一部分相关推荐

  1. 第十一届蓝桥杯python组试题解答

    文章目录 第十一届蓝桥杯python组试题解答 门牌制作 寻找2020 跑步锻炼 蛇皮走位 排序 成绩统计 单词分析 数字三角形 平面切分 装饰宝珠 第十一届蓝桥杯python组试题解答 门牌制作 这 ...

  2. Python面试题解答——第三部分Python高级

    元类 42.Python中类方法.类实例方法.静态方法有何区别? 类方法: 是类对象的方法,在定义时需要在上方使用 @classmethod 进行装饰,形参为cls,表示类对象,类对象和实例对象都可调 ...

  3. Python面试题解答——第二部分企业面试题

    企业面试题 企业面试题 15.python新式类和经典类的区别? a. 在python里凡是继承了object的类,都是新式类 b. Python3里只有新式类 c. Python2里面继承objec ...

  4. python基础知识面试题-Python基本面试解答由浅入深—简答题

    原标题:Python基本面试解答由浅入深-简答题 不管你是学习任何语言,不管你是刚毕业还是行业大佬,找工作最终逃不掉的就是面试题,有的程序员很讨厌面试题,他们觉得面试题不会不代表我做不出东西,其实这种 ...

  5. python公司面试题集锦 python面试题大全

    问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Par ...

  6. 面试前赶紧看了5道Python Web面试题,Python面试题No17

    目录 本面试题题库,由公号:非本科程序员 整理发布 第1题: Flask中的请求上下文和应用上下文是什么? 第2题:django中间件的使用? 第3题: django开发中数据做过什么优化? 第4题: ...

  7. 300道Python面试题,备战春招!

    作者 | kenwoodjw 责编 | Jane 出品 |  Python大本营(ID:pythonnews) 程序员转行学什么语言? https://edu.csdn.net/topic/ai30? ...

  8. 一道Python面试题,据说大部分人都中招了,纷纷开始怀疑自己

    无意间,看到这么一道Py无意间,看到这么一道Python面试题:以下代码将输出什么? def testFun(): temp = [lambda x : i*x for i in range(4)] ...

  9. python用哪个版本比较好 2020_2020年最常见的Python面试题答案

    Python新手在谋求一份Python编程工作前,必须熟知Python的基础知识.编程网站DataFlair的技术团队分享了一份2020年最常见Python面试题合集,既有基本的Python面试题,也 ...

最新文章

  1. StartOS 5.0 正式版发布
  2. 微信8.0内测更新!!!(附内测体验资格)
  3. C++ 退出双层for循环,解决 break、return、continue无法实现问题
  4. 允许自行设计赛道之后,参赛同学都想到了什么呢?
  5. 跟我一起学.NetCore之Swagger让前后端不再烦恼及界面自定义
  6. html列表按时间排序代码_按字母顺序排序的列表
  7. oracle异构迁移,异构数据库系统迁移到Oracle 工具 - Oracle SQL Developer
  8. 窗口变化相关消息 OnSize、OnSizing和OnGetMinMaxInfo
  9. linux中send函数,Linux系统调用之send/sendto/sendmsg函数解析
  10. tomcat设置为开机自启动
  11. iMazing中IPA文件的介绍与管理
  12. Javascript 中文按拼音顺序
  13. yahoo雅虎邮箱开通直邮(pop)功能
  14. Java项目——云R记
  15. Win7组策略编辑器怎么打开?
  16. 并行计算综述————第一章 并行计算硬件平台:并行计算机
  17. 美剧推荐:abc新剧Traveler
  18. 如何在chrome浏览器下设置12px以下的字体
  19. java 反编译工具=_JAVA反编译工具精选
  20. JAVA泡泡堂网络游戏的设计与实现免费源代码+LW

热门文章

  1. 内河港口首次实现区块链无纸化进口放货
  2. ChaiNext:ETH底部试探后反弹,测试1500关口
  3. Filecoin Gas基础费率跌至4.40 nanoFIL
  4. 原来这样做模型分数,稳定性与灵活性可以双保障!
  5. SpringMVC跨重定向请求传递数据
  6. 使用SQLyog连接MySQL数据库
  7. Tomcat源码分析——server.xml文件的加载
  8. QT4.7.3在dm6446平台上的移植[转]--make[1]: *** [assistant_cs.qm] Error 2
  9. 去除KMPplayer2.9的驴头提示
  10. 一种调用dll的巧妙方法