你可能不知道的python 高性能魔法(1)
2018-03-15 16:17
337 查看
# coding:utf-8 import timeit import time ########################## 1. quickly_map.py ############################# rt = timeit.timeit('"-".join(str(n) for n in range(100))', number=10000) print(rt) # 0.252703905106 rt = timeit.timeit('"-".join([str(n) for n in range(100)])', number=10000) print(rt) # 0.234980106354 rt = timeit.timeit('"-".join(map(str, range(100)))', number=10000) print(rt) # 0.152318954468 ########################### 2.在现有基础上合并字典 ######################## rt1 = timeit.timeit("x = {'a': 1, 'b': 2}; y = {'b': 3, 'c': 4};z = dict(x, **y);",number=10000) print rt1 rt2 = timeit.timeit("for i in x.keys(): y[i]=x[i];","x = {'a': 1, 'b': 2}; y = {'b': 3, 'c': 4};",number=10000) print rt2 ############################ 3.looking very good json!########################### my_mapping = {'a': 23, 'b': {"c":"tornado","d":[1,2,3]}, 'c': 0xc0ffee} print(my_mapping) # {'b': 42, 'c': 12648430. 'a': 23} import json print(json.dumps(my_mapping, indent=4, sort_keys=True)) # { # "a": 23, # "b": 42, # "c": 12648430 # } ########################### 4.share file ################################### # 你如果想快速且简单地共享一个目录中的文件,你只需在终端执行下面对应版本的指令: # Python2 # python -m SimpleHTTPServer # Python 3 #python3 -m http.server ########################## 5.给元组起一个别名 ############################### from collections import namedtuple Student = namedtuple("student", "name age weight") student1 = Student("jim", 20, 184) print student1.name print student1.age print student1.weight print student1 ########################## 6.zip快速合并字典 ############################### mat = [[1, 2, 3], [4, 5, 6]] time_res1 = time.time() res1 = zip(*mat) ### 这里使用zip方法要快的多。 time_res2 = time.time() print time_res2 - time_res1 print res1 time_res3 = time.time() res2 = [[mat[j][i] for j in range(len(mat))] for i in range(len(mat[0]))] time_res4 = time.time() print time_res4 - time_res3 print res2 ######################### 7. 求差集 ###################################### ret1 = {} ret1["no_red"] = " ".join(sorted(list(set([str(i) for i in range(30)]) - set([str(i) for i in range(20)])))) or u"无" ### 虽然上面的方法写的貌似很繁琐,括号很多。但是毕竟是内建函数,运行速度很快。 print ret1 ret2 = {} ret2["no_red"] = " ".join(k for k in [str(i) for i in range(30)] if k not in [str(i) for i in range(20)]) or u"无" print ret2
相关文章推荐
- 你可能不知道的java、python、JavaScript以及jquary循环语句的区别
- 你可能不知道的python
- 40个你可能不知道的Python的特点和技巧
- 你可能不知道的11个python库
- python之你可能不知道的常用小点滴 -_-
- 你可能不知道的30个Python语言的特点技巧
- 你可能不知道的python
- 干货汇总 | 你可能不知道的 Python Web 部署方式总结
- 你可能不知道的 30 个 Python 语言的特点技巧
- 你可能所不知道的python中有用的特性
- 你可能不知道的java、python、JavaScript以及jquary循环语句的区别
- 你可能不知道但很有用的python小技巧
- 你可能不知道的30个Python语言的特点技巧
- 你可能不知道的 30 个 Python 语言的特点技巧
- 11个实用但你可能不知道的Python程序库
- 30 个你可能不知道的 Python 语言特性和技巧
- 11个可能不知道的Python库
- 11个实用但你可能不知道的Python程序库
- 11个实用但你可能不知道的Python程序库
- 你可能不知道的java、python、JavaScript以及jquary循环语句的区别