我最近阅读了关于赋值表达式的PEP 572,并偶然发现了一个有趣的用例:
# Compute partial sums in a list comprehension
total = 0
partial_sums = [total := total + v for v in values]
print("Total:", total)
Run Code Online (Sandbox Code Playgroud)
我开始自己探索该代码片段,很快发现这:+=不是有效的 Python 语法。
# Compute partial sums in a list comprehension
total = 0
partial_sums = [total :+= v for v in values]
print("Total:", total)
Run Code Online (Sandbox Code Playgroud)
:=我怀疑在如何实施方面可能存在一些根本原因,明智地排除了这种:+=情况,但我不确定它可能是什么。如果对 Python 更了解的人知道为什么:+=不可行或不切实际或未实现,请分享您的理解。
我有一个这样的列表:
a_list = [1,2,3,4,5,6,7,8]
Run Code Online (Sandbox Code Playgroud)
如何迭代它以产生下面的输出?
1,2
2,3
3,4
4,5
5,6
...
Run Code Online (Sandbox Code Playgroud)
谢谢
Python的collections.Counter.total()的时间复杂度是多少?我已阅读该方法的文档,但没有提及其效率。有谁知道该方法是如何在幕后实现的以及它的时间复杂度是多少?