第一章:python基础
数据类型:
1 字典:
1.1 现有字典 dict={‘a’:22,‘g’:55,‘i’:42,‘k’:34}请按字典中的 value 值进行排序?
1. sorted(dict.items(),key = lambda x:x[1])
2.你还可以尝试 value%2 的大小排序.........
sorted(dict.items(),key = lambda x:x[1]%2)
1.2 说一下字典和json的区别?
1. 字典是一种数据结构,json是一种数据的表现形式,字典的key值只要是能hash的就行,
json的必须是字符串
2.json想了解的更深:
1.3 什么是可变、不可变类型?
1. 可变类型:
2. 不可变类型:
1.4 存入字典里的数据有没有先后排序?
答: 存入的数据不会自动排序,可以使用sort函数对字典进行排序。
1.5 字典推导式?
1.dict = {key: value for (key, value) in iterable}
----------此处注意如果你的value是不可变类型,还可以进行键值的互换:
即:{key = value ,value = key}
2.dict = {value: key for (key, value) in iterable}
1.6 现有字典 d={‘a’:4,’g’:5,’l’:2,’k’:33}请将字 典中的 key,value 值进行互换?
dict{value:key lambda key,value for in d.items()}
1.7谈一下Python的GIL锁:
1)、GIL是Python的全局解释器锁,是存在于CPython解释器中的,和Python语言本身没有半毛钱关系,
同一进程中假如有多个线程运行,一个线程在运行Python程序的时候会霸占Python解释器,让改进程
的其他线程无法运行,当该线程运行完成后其他线程才能运行。如果线程运行过程中遇到了耗时操作,
则解释器锁会打开,使其他线程运行,所以在多线程中,线程的运行仍然是有先后顺序的,并不是同时进行的。
2)、多进程中因为每个进程都能被系统分配资源,相当于每个进程有一个Python解释器,所以多进程可以实现
多个进程的同时运行,缺点是进程系统资源开销大。
3)、如何解决GIL问题:
a、换解释器
b、用其它语言来解析
4)、Python的解释器有以下几种:
a、标准版本的Python是用C来编译的,又称为CPython,除此之外,还有一些其他的Python实现。
b、Java实现版本。这个解释器完全用Java写成,名为Jython。
@、只要有虚拟机,就可以运行jyphon
@、拥有访问Java包与类库的能力
@、为Java开发环境提供了脚本引擎
@、鼓励Python到Java的开发
c、.net实现。用C#语言完成,名为IronPython。
5)、为什么Python叫胶水语言?
python是解释型语言,有丰富和强大的第三方库、够把用其他语言制作的各种模块(尤其是C/C++)
很轻松地联结在一起,就像胶水一样方便。