。
存在着一项具备效用的功能, 此功能乃是去调取先前的命令输出, 在这里, 输入以及输出事实上均为对象, 举例而言, 你能够运用Out去调取第三条命令的输出。
你可以用下面这条命令安装 :
pip3
4. 列表表达式
一旦拥有列表表达式, 你便无需再借助for loop去生成一个list了, 其基本语法是如此这般:
for item in list if
这就是一个生成包含一串数字的 list 的简单例子。

于这条命令当中, 是能够运用表达式()的, 因而也能够开展一些数学运算:

你甚至可以调用一个外部函数:

最后, 你同样能够于生成 list 的时候, 运用 if 语句来展开筛选。在下面的这个例子之中, 我们仅仅留存了能够被 2 整除的那些值:

5. 检查你的对象占用了多少内存
你能够运用sys.()去察看你所创建的对象占据的内存大小:

哇,等一下,为什么这么大的 list 只有 48 字节?
那是由于range函数单单返回了一个好似list的类。从这里能够看出, 跟直接运用list相比较而言, 运用range能够省下好多空间:

6. 返回多个值
函数能够同时返回多个值, 且并不需要运用, 如同 list 或者类这般的数据结构。其工作的运作机制是如此这般的。

当返回值的数量极为有限的时候, 采用这种方式是可行的, 然而一旦返回值的数量超出了 3 个, 那么这些返回值就应当被放置到一个(数据)类当中了。
7. 使用数据类
3.7起开始给出数据类功用, 该功用和常规的类, 还有别的如返回多个值的函数等类似功用比起来, 具备以下优点:
数据类型有最低代码量要求
因为数据类已经自带了功能,故而你可以直接进行数据类的对比
数据类自带,你也可以直接在 debug 时打印出一个数据类
数据类型需要你输入提示,这样 bug 量会大大减少
下面展示了一个实用的数据类例子:

想更深入的了解数据类,可以参考:
8. 在位置不变的情况下交换变量
一个小技巧就可以减少很多行代码:

9. 合并 ( 3.5+)
从 3.5 开始, 的合并变得更容易了:

若是存在有重复的 key, 那么首个词典的此 key 所对应的那个值将会被覆盖掉。
10. 把字符串变成标题形式
这只是 中的宝藏之一:

11. 把字符串分割成 list
你能够将一个字符串划分成一个 list 的字符串。在下面的示例里, 我们是以空格来划分字符串的:

12. 将一个字符串列表变成一个字符串
反向上一个小技巧, 我们能够将一个 list 变成字符串做法且可以在每个词中间插入空格:

你可能在想为什么不用
.join(" ")
好问题!
这是由于, .join()是能够连接任何可迭代对象的, 并非仅仅局限于列表。于其中运用此类函数, 能够防止那些操作, 在我们所不愿意它发生的地方出现。
13. Emoji

有些人对这个功能怀有喜好, 有些人却对其极为抗拒, 这因个体不同而存在差异。从严格意义来讲, 这个功能突出的益处是当开展社交数据剖析之际能更为便利。
首先,你要安装 emoji 模块:
pip3 emoji
安装完后,你可以像下面这样使用这个模块:

想要更深入的了解 emoji 模块,可以参考:。
14. list 切片
list 切片的基本使用形式如下:
start:stop:step
开始, 停止与步骤, 均为可选参数。设若你未作定义, 那么它们将依据如下规则来分配默认值:
start = 0
end = 方括号里面字符串的最后一个字符
step = 1

15. 翻转字符串和 list
通过运用方才所提及的切片操作, 能够实现对字符串以及 list 的翻转。一旦将 step 设置为 -1该项参数, 那么便能够达成翻转操作了。

16. 展示小猫的图片
最终, 我还是发觉到了一个能够在我的文章里提及小猫的契机!当然, 你也有或许是运用这个功能去展现别的图。首先, 你得进行安装, 这可是Image库的一个分支:
pip3
现在把这个图像下载下来并命名为 .jpg:

图源: 的
你可用下面这段 代码来显示图像。

或者你可以直接在 上做这件事。
能做到的可不单单只是这些, 它能够对图片开展分析, 进行裁剪, 实施过滤, 予以增强, 加以变形等等举措。要是想要获取更深度的了解, 那就可以去查看一下它的文档:
17. 使用 map()
的内置函数之一就是 map()。map() 的语法如下:
因而你能够为其赋予一个函数用以使其得以执行, 接着还得传递给它相应的参数。此参数能够是任一可进行迭代的对象。在下面所列举的例子当中我运用了 list:

马上去瞅瞅你的代码, 有没有某些地方能够用map()替代loop呢!
18. 从 list 或是 中获取 元素
你能够通过set()去得到list或者像类似list的对象的元素, 而其结果会归来成为一个set。

19. 找到高频值
在 list 或字符创中获取高频值:
max() 所得出后返回之举, 乃是源于 list 之中的最高值。而 key 所能凭借的一种输入情况, 就像于本例之中的 test.count 这种, 能够用以确定你针对排序所选取之行径方式。此函数将会被实用至排在前面可进行迭代之对象所具备的每一项呀。
list 的内置函数并非 test.count, 而是另有其名。当我们给予某个输入时, test.count 这个函数会针对该输入进行出现次数的统计。若输入为 1, test.count(1) 将返回 2,若输入是 4, test.count(4) 则会返回 4。
设定(测试项目), 将会返回数值, 亦即是: 含有1, 2, 3, 4这几个数且用逗号隔开的集合形式所代表的值。
这么一来,这一行代码施行的行为便是, 首先寻觅出所有的 值({1, 2, 3, 4}), 而后, max 会针对这四个值逐个开展 list.count 操作, 并且返回其中最大的值。
20. 创建进度条
你能够创立属于你自身的进度条, 这同样是颇具趣味的。不过径直运用那个包将会快出许多:
pip3
现在你可以毫不费力的创建一个进度条了:

下面这个动画展示了所有可能的进度条类型:
图源: ,
21. 在交互 shell 中使用「_」
你可以用下划线来获得上一条命令的输入,在 中是这样的:
In : 3 * 3
Out: 9In : _ + 3
Out: 12
在shell里, 这条命令同样能够运用。位于shell之中, 你也能够借由Out获取In的输出结果。举例来讲, 于上面所举的例子当中, Out将会返回9。
22. 快速创建一个网页服务器
你可以快速创建一个网页服务器,并将当前的路径作为内容:
-m http.
倘若你打算跟你的同事去分享某些东西, 又或者是测试一些简易的 HTML 网站, 那么这条命令是颇为有用的。
23. 多行字符串
即便你能够于代码里借由三重引号(“ “ “ ” ” ”)去储存多行字符串, 然而这并非是理想的方式。你在三重引号中间的全部内容都会变为字符串, 正如下面这幅图所展示的那般, 就连格式符也都变成了字符串。
较为于我而言, 更倾向运用第二种方式, 此方式能够将众多行归集于一处, 与此同时, 你的代码格式亦会颇为良好, 而该方法仅有的缺点便是, 你需清晰地判定换行的位置。

24. 条件赋值的三元运算符
这是那些让你代码在保证可读性的情况下更简洁的方法之一:
if
else
实例如下:
x = "!" if (y == 2) else "!"
25. 统计出现数
对于list当中的各个值, 你能够运用库去获取其计数, 然后将这些计数返回而形成一个:

26. 比较符链( of )
那里, 你能够将比较符衔接成一条链, 如此代码会更具可读性, 并且更为简洁。

27. 加一些色彩

中 的截屏
使用 ,你可以在你的终端上添加点颜色。

28. 日期计算
这个模块并非普通模块, 它对标准的同样被称作模块之物进行了极大程度的扩充。请先去把这个模块下载下来:
pip3 –
你能够运用这个库去开展诸多相当酷的事儿。我仅仅会为你们讲述我所发觉的极为有用的一个实例: 像是日志文件之中日期的那种模糊解析之类的。

需记住这样一点, 当基本的日期函数面对一些问题而显得毫无办法的时候,此时, 就能发挥作用。
29. 整除

图源:公共源 –
2当中的除号(/), 它默认是整除, 这种情况是有条件的, 条件是除非其中一个被用来操作的数是浮点数, 所以最终你会得到呈现出来是这样的一种结果:
# 2
5 / 2 = 2
5 / 2.0 = 2.5
在数字3里面, 除号所得到的结果默认情况下是浮点数, 然而双斜杠却成为了进行整除运算的符号, 所以在这个时候最终的结果就变为了:
3
5 / 2 = 2.5
5 // 2 = 2
如果想要深入了解这一改变,请参考:。
30. 使用 检测
你能够运用模块去检验一个文件的情况, 当你处于剖析诸多文本之际, 该模块便会显得颇具功用, 你能用如下这条指令将它下载下来:
pip
你现在会有一个命令行工具——,这个工具的使用方式是:
.txt
.txt: ascii with 1.0
你可以以在程序中使用这个库,详见:
这就是所有的教程啦!希望大家喜欢这些技巧!
参考链接:
本文为机器之心编译,转载请联系本公众号获得授权。
似乎你没有提供具体句子内容, 请你提供相关句子, 以便我按照要求进行改写。
加入机器之心(全职记者 / 实习生):
投稿或寻求报道:
网硕互联帮助中心







评论前必须登录!
注册