[]这些让人相见恨晚的高效代码小技巧你听过吗?( 二 )
本文插图
开始解码 。
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*的随机子集
推荐阅读
- 三易生活|即使在新款手机中,我们可能也避不开这些烦恼
- 女神玩数码|这些号段千万不能销号,已升值数百倍
- 互联网乱侃秀|都说苹果没5G落后国产机了,结局却很让人扎心,销量又是第一
- 搜狐新闻|充电五分钟,看剧四小时!Reno4 Slogan再升级,这些必杀技很能打
- 趣点要闻|手机发烫是怎么回事?搞清楚这些,有效给手机降温
- CSDN|Rust 让人奔溃的那些特性!
- 成交额618战绩出炉!京东成交额大增74%,iPhone首次大降价,这些产品遭疯抢
- 手机之家|手机找回?数据备份?华为手机云空间这些功能很实用
- 手机大魔王|小米又带来了惊喜,Redmi10x 真的让人酸,5G来袭我选择抄底4G
- 京东6.18元的购买力 在京东618居然能拥有这些?!