我是靠谱客的博主 有魅力篮球,最近开发中收集的这篇文章主要介绍python counter_10个小技巧个性化并改善你的Python代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

尽管从表面上看,Python似乎是任何人都可以学习的一种简单语言,但确实如此,许多人可能惊讶地知道一个人可以熟练掌握该语言。

Python是其中的一门很容易学习的东西,但可能很难掌握。

在Python中,通常有多种处理方法,但是很容易做错事情,或者重新发明标准库并浪费时间,这仅仅是因为您不知道模块的存在。

不幸的是,Python标准库是一个巨大的野兽,此外,其生态系统绝对是巨大的。尽管可能有200万千兆字节的Python模块,但是您可以使用通常与Python中的科学计算相关的标准库和软件包学习一些有用的技巧。

反向串

尽管看似基本,但使用char循环反转字符串可能非常繁琐且令人讨厌。幸运的是,Python包含一个简单的内置操作来精确地执行此任务。为此,我们只需访问字符串上的索引::-1。

a = "!dlrow olleH"
backward = a[::-1]

ef8aef97d7f63b9bfc97f46c1dcb0e0f.png

变暗作为变量

在大多数语言中,为了将数组放入一组变量中,我们需要迭代遍历值或按位置访问暗点,如下所示:

firstdim = array[1]

但是,在Python中,有一种更酷的方法。为了将值列表更改为变量,我们可以简单地将变量名设置为等于数组,且数组长度相同:

array = [5, 10, 15, 20]
five, ten, fift, twent = array

7c9c6c0b524d8cef0ab0fafdfb36020f.png

itertools

如果您打算花任何时间在Python上花费任何时间,那么您肯定会想要熟悉itertools。

Itertools是标准库中的一个模块,可让您不断解决迭代问题。它不仅使编写复杂的循环变得容易得多,而且使您的代码更快,更简洁。

这只是Itertools用法的一个示例,但有数百个:

c = [[1, 2], [3, 4], [5, 6]]
# Let's convert this matrix to a 1 dimensional list.import itertools as
itnewlist = list(it.chain.from_iterable(c))

智能开箱

迭代地解压缩值可能会非常耗时且费力。幸运的是,Python有几种很酷的方式可以解压缩列表!一个例子是* ,它将填充未分配的值并将它们添加到变量名下的新列表中。

a, *b, c = [1, 2, 3, 4, 5]

b06c03faac456551304a001c79746b6b.png

枚举

如果您不了解枚举,则可能应该熟悉它。枚举将允许您获取列表中某些值的索引。当使用数组而不是数据框架时,这在数据科学中特别有用。

for i,w in enumerate(array):
print(i,w)

59e1e8d72ade4b0d0d2656533b296deb.png

名字切片

在Python中拆分列表非常简单!可以使用各种各样的出色工具,但是肯定有价值的一个功能是可以命名列表的片段。这对于Python中的线性代数特别有用。

a = [0, 1, 2, 3, 4, 5]
LASTTHREE = slice(-3, None)
slice(-3, None, None)
print(a[LASTTHREE])

2ca8d5984879fd7468a115c0cd709875.png

组相邻列表

当然可以在for循环中相当容易地对相邻循环进行分组,特别是通过使用zip(),但这当然不是最好的处理方式。

为了使事情变得更加轻松和快捷,我们可以使用zip编写一个lambda表达式,该表达式将对我们的相邻列表进行分组,如下所示:

a = [1, 2, 3, 4, 5, 6]
group_adjacent = lambda a, k: zip(*([iter(a)] * k))
group_adjacent(a, 3)
[(1, 2, 3), (4, 5, 6)]
group_adjacent(a, 2)
[(1, 2), (3, 4), (5, 6)]
group_adjacent(a, 1)

生成器的next()迭代

在编程的大多数正常情况下,我们可以使用一个计数器来访问一个索引并获取我们的仓位号,该计数器将只是添加到以下值的值:

array1 = [5, 10, 15, 20]
array2 = (x ** 2 for x in range(10))
counter = 0for i in array1:
# This code wouldn't work because 'i' is not in array2.
# i = array2[i]
i = array2[counter]
# ^^^ This code would because we are accessing the position of i

但是,我们可以使用next()代替它。Next使用一个迭代器,该迭代器将当前位置存储在内存中,并在后台遍历列表。

g = (x ** 2 for x in range(10))
print(next(g))
print(next(g))

a1f0bc455fe68a49321f5f2d2c38c13e.png

Counter

标准库中另一个很棒的模块是集合,我今天想向您介绍的是集合中的计数器。使用Counter,我们可以轻松获得列表的计数。这对于获取数据中的值总数,获取数据的空计数以及查看数据的唯一值很有用。我知道你在想什么

"为什么不只使用Pandas?"

这当然是正确的观点。但是,使用Pandas进行自动化无疑会更加困难,并且只是在部署算法时需要将其添加到虚拟环境中的另一个依赖项。此外,Python中的计数器类型具有Pandas系列所没有的许多功能,这使其在某些情况下更加有用。

A = collections.Counter([1, 1, 2, 2, 3, 3, 3, 3, 4, 5, 6, 7])
A
Counter({3: 4, 1: 2, 2: 2, 4: 1, 5: 1, 6: 1, 7: 1})
A.most_common(1)
[(3, 4)]
A.most_common(3)
[(3, 4), (1, 2), (2, 2)]

出队

收集模块中另一个很棒的事情是出队。看看我们可以用这种类型做的所有整洁的事情!

import collections
Q = collections.deque()
Q.append(1)
Q.appendleft(2)
Q.extend([3, 4])
Q.extendleft([5, 6])
Q.pop()
Q.popleft()
Q.rotate(3)
Q.rotate(-3)
print(Q)

3a14e26db347030245495da5cd3c71e8.png

本文翻译自Emmett Boudreau的文章《10 Smooth Python Tricks For Python Gods》

https://towardsdatascience.com/10-smooth-python-tricks-for-python-gods-2e4f6180e5e3

文源网络,仅供学习之用,如有侵权请联系删除。

在学习Python的道路上肯定会遇见困难,别慌,我这里有一套学习资料,包含40+本电子书,800+个教学视频,涉及Python基础、爬虫、框架、数据分析、机器学习等,不怕你学不会! https://shimo.im/docs/JWCghr8prjCVCxxK/ 《Python学习资料》

关注公众号【Python圈子】,优质文章每日送达。

最后

以上就是有魅力篮球为你收集整理的python counter_10个小技巧个性化并改善你的Python代码的全部内容,希望文章能够帮你解决python counter_10个小技巧个性化并改善你的Python代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部