常见的Python标准库功能

认为Python标准库是可以预测的吗?想一想。本文介绍了在有趣的环境中使用熟悉功能的有趣方法。

来源:KDnuggets
作者的图像|意识形态图

#简介

您知道Python标准库的基础知识。您可能已经使用了Zip()和GroupBy()之类的功能来处理日常任务而不会大惊小怪。但这是大多数开发人员想念的:这些相同的功能可以以您可能从未考虑过的方式解决令人惊讶的“罕见”问题。本文解释了熟悉的Python功能的其中一些用途。

zip() groupby()

🔗链接github上的代码

链接到GitHub上的代码

#1。itertools.groupby()用于运行长度编码

itertools.groupby()

大多数开发人员将groupby()视为逻辑上数据分组的简单工具,但它对于运行长度编码也很有用,这是一种计算连续相同元素的压缩技术。此函数自然将相邻匹配项组合在一起,因此您可以将重复序列转换为紧凑的表示。

来自Itertools Import Groupby

#从服务器日志分析用户活动模式
user_actions = ['login','login','浏览','浏览','browse',
                “购买”,“注销”,“注销”]

#压缩为模式摘要
activity_patterns = [(action,len(list(group)))
                    为了采取行动,请在groupby中组(用户_actions)]

打印(activity_patterns)

#计算每个活动阶段花费的总时间
total_duration = sum(计数动作,计数activity_patterns中)
print(f“ session持续{total_duration}操作”)
输出:
 [('login',2),('browse',3),('publice',1),('logout',2)]
会话持续了8个操作
 groupby()函数将连续的相同元素标识并将它们分组在一起。通过将每个组转换为列表并测量其长度,您可以获得每个动作按顺序发生的次数。 
#2。zip()带 *用于矩阵换位
矩阵换位 - 将行分为列 - 当您将Zip()与Python的拆箱操作员相结合时,变得简单。 
 * 
#3。维护排序订单的一分为二
二等
前3名球员:[('David',3350),('Bob',3100),('eva',2900)] 
 HAPQ

来自Itertools Import Groupby #从服务器日志分析用户活动模式 user_actions = ['login','login','浏览','浏览','browse', “购买”,“注销”,“注销”] #压缩为模式摘要 activity_patterns = [(action,len(list(group))) 为了采取行动,请在groupby中组(用户_actions)] 打印(activity_patterns) #计算每个活动阶段花费的总时间 total_duration = sum(计数动作,计数activity_patterns中) print(f“ session持续{total_duration}操作”)

输出:

[('login',2),('browse',3),('publice',1),('logout',2)] 会话持续了8个操作

groupby()函数将连续的相同元素标识并将它们分组在一起。通过将每个组转换为列表并测量其长度,您可以获得每个动作按顺序发生的次数。

#2。zip()带 *用于矩阵换位

矩阵换位 - 将行分为列 - 当您将Zip()与Python的拆箱操作员相结合时,变得简单。

*

#3。维护排序订单
二等
前3名球员:[('David',3350),('Bob',3100),('eva',2900)]HAPQHAPQ