听说函数式编程很⑥,咱也不知道,咱也不晓得,还没实际用过。emmm。。。。,先mark下Python中和函数式编程有关的部分功能先,又开始水了,立个flag🚩:慢慢完善

map

先看下Python官方文档的说法

map(function, iterable, …),返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器。 如果传入了额外的 iterable 参数,function 必须接受相同个数的实参并被应用于从所有可迭代对象中并行获取的项。

见识一下

1
2
3
4
5
6
7
8
9
10
11
12
>>> def cook(something):
... if something == "cow":
... return "hamburger"
... elif something == "tomato":
... return "chips"
... elif something == "chicken":
... return "ddrumstick"
... elif something == "corn":
... return "popcorn"
...
>>> list(map(cook, ["cow", "tomato", "chicken", "corn"]))
['hamburger', 'chips', 'ddrumstick', 'popcorn']

what/why

通常情况使用git clone github_repository_address下载下来的仓库使用git branch查看当前所有分支时只能看到master分支,但是想要切换到其他分支进行工作怎么办❓

其实使用git clone下载的repository没那么简单😥,clone得到的是仓库所有的数据,不仅仅是复制在Github repository所能看到的master分支下的所有文件,clone下来的是仓库下的每一个文件和每一个文件的版本(也就是说所有的分支都被搞下来了咯),那为啥看不到,其实remote branch被隐藏了,需要使用git branch -a才能看到。

how

emmm…,现在看到了,那么怎么切换到remote branch呢?(我太难了🙃),又到了查文档的时候了,一波操作过后了解到git checkout是有restore working tree files的功能的,可以用来restore remote branch,比如使用以下命令在本地创建个新分支track远程分支:

1
$ git checkout -b <branch> --track <remote>/<branch>
1
2
# 例子,本地为远程分支CkaiGrac-PYMO创建的新分支名为yeshan,push时需要注意
git checkout -b yeshan --track origin/CkaiGrac-PYMO

tips:使用git checkout -t <remote/branch>默认会在本地建立一个和远程分支名字一样的分支

reference

Git

生成一个列表的几种方式的性能对比

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# -*- coding: utf-8 -*-

from timeit import Timer
import matplotlib.pyplot as plt

# 列表常用操作性能测试

# 迭代 + '+'
def test1():
l = []
for i in range(1000):
l = l + [i]


# 迭代 + append
def test2():
l = []
for i in range(1000):
l.append(i)

# 列表生成式
def test3():
l = [i for i in range(1000)]

# list构造函数 + range
def test4():
l = list(range(1000))

t1 = Timer("test1()", "from __main__ import test1")
# print("concat %f seconds" % t1.timeit(number=1000))

t2 = Timer("test2()", "from __main__ import test2")
# print("concat %f seconds" % t2.timeit(number=1000))

t3 = Timer("test3()", "from __main__ import test3")
# print("concat %f seconds" % t3.timeit(number=1000))

t4 = Timer("test4()", "from __main__ import test4")
# print("concat %f seconds" % t4.timeit(number=1000))

result = [t1.timeit(1000), t2.timeit(1000), t3.timeit(1000), t4.timeit(1000)]
method = ["for+ '+'", "for + append", "list comprehension", "list + range"]

plt.bar(method, result, color='rgby')

# plt.legend('concat time')
# print(zip(method, result))

for x,y in zip(method, result):
plt.text(x, y, "%fs" % y)

plt.show()

Cost time

个人简单记录下

virtualenv + pip

virtualenv是一个用于创建”隔离的ython运行环境”的工具,Docs
pip是Python的包管理工具,Docs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装virtualenv
pip install virtualenv

# -------------------------------- #
# 虚拟环境的创建与使用
# 1、在当前工程目录下使用virtualenv创建一套独立的Python运行环境
virtualenv venv # 环境名为venv(自由定义)
# 2、cd 到创建好的虚拟环境的Scripts目录,执行如下命令可激活或者退出虚拟环境
activate # 激活,激活后命令提示符会变成当前工程目录Python环境名
deactivate # 退出
# 3、激活虚拟环境后可使用pip为当前项目安装依赖,example:
pip install numpy
# 4、使用pip freeze > requirement.txt 可导出项目依赖到requiremen.txt中
# 为项目创建一个新的、干净的环境时,可使用 pip install -r requiremen.txt 为项目安装依赖


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 , 总访问量为 次 。