我有一个包含0/1个值的列表,即

MyList = [0,0,0,0,1,0,1,0,0,0,1,1,0]

我的目标是计算两个像(0,0) and (0,1)这样的配对数量.

在上面的例子中,有5对(0,0)(即第一、第二、第三和第八、第九位置),并且对于(0,1)有3个这样的出现.

有什么函数/方法可以实现这一点吗?

推荐答案

使用collections.Counter:

from collections import Counter

lst = [0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0]

c = Counter(zip(lst, lst[1:]))

print(f"{c[(0, 0)]=}")
print(f"{c[(0, 1)]=}")

打印:

c[(0, 0)]=5
c[(0, 1)]=3

Python-3.x相关问答推荐

只有在Chrome尚未打开的情况下,打开Chrome后,PySimpleGUI窗口才会崩溃

使用pybind11时,在sys.exit(0)处成功完成测试后,Python单元测试冻结

这是重命名极地df列的最好方式吗?

数组列的极点成对求和

是什么原因导致Pandas=2.1.4和Pandas=1.4.2之间Pandas DataFrame中从Float64到int32的连续列转换方式不同

数据类对象列表的字典获取方法-在数据类列表中查找具有特定变量值的数据类

我没有';无法理解此TemplateDoesNotExist错误

Django 模型类方法使用错误的 `self`

错误:无法为 pyconcorde 构建轮子,这是安装基于 pyproject.toml 的项目所必需的

使用 iloc 或 loc 对多列进行过滤

如何在类中的函数(以 self 作为第一个参数)中使用递归

使用 NaN 计算 pct_change 时如何避免 bfill 或 ffill

为什么 Sympy 不能解决我的非线性系统? Python 解释器一直在执行,直到我终止进程

Dask worker post-processing

命名元组内命名元组的 Python 语法

使用 pytest.fixture 返回模拟对象的正确方法

如何配置 Atom 以运行 Python3 脚本?

如何在元素列表中找到最大的数字,可能是非唯一的?

所有 Python dunder 方法的列表 - 您需要实现哪些方法才能正确代理对象?

计数大于Pandas groupby 中的值的项目