「」这些让人相见恨晚的高效代码小技巧你听过吗?( 二 )


「」这些让人相见恨晚的高效代码小技巧你听过吗?
本文插图
开始解码 。
Product函数接受两个列表 , 并反馈两个列表的乘积 。 列表1和列表2是充当map函数序列的两个列表 。 map()集product函数和序列于一身→列表1和列表2 , 以及反馈两个列表的乘积作为结果 。
「」这些让人相见恨晚的高效代码小技巧你听过吗?
本文插图
图源:unsplash
「」这些让人相见恨晚的高效代码小技巧你听过吗?
本文插图
Map + Lambda组合
可以使用lambda表达式修改上述代码 , 以替换product函数:
list1 = (1, 2, 3, 4) list2 = (10,20,30,40) result = map(lambda x,y: x * y, list1,list2) print(list(result))
Lambda表达式有助于降低单独编写函数的成本 。
「」这些让人相见恨晚的高效代码小技巧你听过吗?
本文插图
启动、停止和设置
Slice(start:stop[:step])是通常包含部分序列的对象 。
· 如果只提供停止 , 则从索引0开始生成部分序列直到停止 。
· 如果只提供开始 , 则在索引开始之后生成部分序列直到最后一个元素 。
· 如果同时提供开始和停止 , 则在索引开始之后生成部分序列直到停止 。
· 如果起始、停止和步骤三者同时提供 , 则在索引开始之后生成部分序列直到停止 , 并增加索引步骤 。
x = [ 1, 2, 3, 4, 5, 6, 7, 8 ] x[ 1: 6: 2]
「」这些让人相见恨晚的高效代码小技巧你听过吗?
本文插图
上面的代码中 , 1是开始索引 , 6是停止索引 , 2是步骤索引 。 这意味着从指数1开始到指数6停止 , 步长为2 。
还可以使用[::-1]操作翻转列表:
x[::-1]
「」这些让人相见恨晚的高效代码小技巧你听过吗?
本文插图
没错 , 通过开始、停止和步骤操作 , 很容易就可以将整个列表进行逆转 。
「」这些让人相见恨晚的高效代码小技巧你听过吗?
本文插图
组合Zip和Enumerate
zip和enumerate函数常用于for循环 , 两个一起用就更精彩了 。 它不仅可以在单个循环中迭代多个值 , 而且可以同时获得索引 。
NAME = ['Sid','John','David'] BIRD = ['Eagle','Sparrow','Vulture'] CITY =['Mumbai','US','London']for i,(name,bird,city) inenumerate(zip(NAME,BIRD,CITY)): print(i,' represents ',name,' ,',bird,' and ',city)
「」这些让人相见恨晚的高效代码小技巧你听过吗?
本文插图
Zip函数可以将所有列表合并为一个 , 以便同时访问每个列表 , 而Enumerate函数协助获得索引以及附加到该索引的元素 。
「」这些让人相见恨晚的高效代码小技巧你听过吗?
本文插图
随机抽样
有时会遇到非常大的数据集 , 因而决定处理数据的随机子集 。 pandas数据框的sample函数可以实现更多的功能 。 不妨看看在上面已经创建过的歌星数据模型 。
df.sample(n=10)
这有助于获取数据集里随机的10行 。
df.sample(frac=0.5).reset_index(drop=True)
分解上面的代码 , frac参数取值在0到1之间 , 包括1 。 它占用分配给它的数据流的一部分 。 在上面的代码片段中指定了0.5 , 因此它将返回size→0.5*的随机子集
「」这些让人相见恨晚的高效代码小技巧你听过吗?