计算嵌套列表中包含特定元素的列表的数量

2023-12-22

我有一个列表,例如:

res = [['a', 'b', 'a'], ['a', 'b', 'c'], ['a']]

我想计算有多少个列表包含特定字母。例如,“a”包含在 3 个列表中,“b”包含在 2 个列表中,“c”包含在 1 个列表中。

下面的代码是我到目前为止所拥有的:

count=0
docs='a'

list1=[]

for c in range(len(res)):
    for i in res[0]:
        list1.append(i)
        for i in list1:
            if i == docs:
                count=1
print count

当你发现自己说“我想数数有多少……”时,很有可能Counter() https://docs.python.org/2/library/collections.html#collections.Counter, 来自collections模块,可以提供帮助。

在本例中,我们想要计算每个字母出现在多少个列表中。由于我们不想对每个子列表多次计算任何字母,因此我们将它们转换为sets https://docs.python.org/2/tutorial/datastructures.html#sets:

>>> res = [['a', 'b', 'a'], ['a', 'b', 'c'], ['a']]
>>> [set(x) for x in res]
[{'b', 'a'}, {'c', 'b', 'a'}, {'a'}]

顺序会混淆,但这并不重要,只要每个列表中只有一个字母即可。

现在我们想将这些字母组合成一个序列,这样我们就可以对它们进行全部计数。我们可以这样做:

>>> [s for x in res for s in set(x)]
['b', 'a', 'c', 'b', 'a', 'a']

...但这有点难以理解。幸运的是,里面有一个函数itertools模块称为chain() https://docs.python.org/2/library/itertools.html#itertools.chain它做同样的事情并且更容易阅读。我们想要chain.from_iterable()版本:

>>> from itertools import chain
>>> c = chain.from_iterable(set(x) for x in res)
>>> list(c)
['b', 'a', 'c', 'b', 'a', 'a']

不用担心这个list(c)太多了 -chain()返回一个iterator https://docs.python.org/2/glossary.html#term-iterator,这意味着在我们实际对结果执行某些操作(例如将其放入列表中)之前,不会计算任何内容,因此我这样做是为了展示它产生的结果。

不管怎样,我们现在需要做的就是将该序列传递给Counter():

>>> from collections import Counter
>>> Counter(chain.from_iterable(set(x) for x in res))
Counter({'a': 3, 'b': 2, 'c': 1})

整个事情是这样的:

from collections import Counter
from itertools import chain

res = [['a', 'b', 'a'], ['a', 'b', 'c'], ['a']]

letter_count = Counter(chain.from_iterable(set(x) for x in res))

print(letter_count['a'])  # prints 3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算嵌套列表中包含特定元素的列表的数量 的相关文章

  • ValueError:“连接”层需要具有匹配形状的输入(连接轴除外)

    我正在尝试为我的项目构建 Pix2Pix 并收到错误 值错误 Concatenate层需要具有匹配形状的输入 除了连接轴之外 获得输入形状 None 64 64 128 None 63 63 128 生成器是一个 U 网模型 我的输入高度
  • ipdb 和 pdb++ 之间的区别?

    Python 有一个名为 pdb 的默认调试器 但社区创建了一些替代品 其中两个是ipdb https github com gotcha ipdb and pdb https github com pdbpp pdbpp 它们似乎迎合了相
  • 需要 python 接口将机器移动到另一个文件夹

    我正在尝试寻找代码支持python为了在数据中心的文件夹之间移动机器但没有成功 我看到pysphere您可以在克隆阶段定义文件夹 而不是在机器克隆之后定义文件夹 This https jackiechen org 2011 11 01 mo
  • 静态文件配置不正确

    我已经在 Heroku 上部署了简单的博客应用程序 它运行在Django 1 8 4 我在静态文件方面遇到了一些问题 当打开我的应用程序时 我看到Application Error页面 所以我尝试调试它并发现当我提交到 Heroku 时它无
  • Python 小数.InvalidOperation 错误

    当我运行这样的东西时 我总是收到此错误 from decimal import getcontext prec 30 b 2 3 Decimal b Error Traceback most recent call last File Te
  • 引发 RuntimeError(f"目录 '{directory}' 不存在") RuntimeError: 导入 fitz 时目录 'static/' 不存在

    当我运行 extract img py 文件时出现此错误 RuntimeError f 目录 directory 不存在 运行时错误 导入 fitz 时不存在目录 static 我不明白为什么这会给我发回此错误消息 我之前看到过关于这个话题
  • 创建一个打开文件并创建字典的函数

    我有一个正在处理的文件 我想创建一个读取文件并将内容放入字典中的函数 然后该字典需要通过 main 函数传递 这是主程序 它无法改变 我所做的一切都必须与主程序配合 def main sunspot dict file str raw in
  • 有条件填写 pandas 数据框

    我有一个数据框df列中包含浮点值A 我想添加另一列B这样 B 0 A 0 for i gt 0 B i if np isnan A i then A i else Step3 B i if abs B i 1 A i B i 1 lt 0
  • 使用opencv计算深度视差图

    我无法使用 opencv 从视差图计算深度 我知道两个立体图像中的距离是用以下公式计算的z baseline focal disparity p 但我不知道如何使用地图计算视差 我使用的代码如下 为我提供了两个图像的视差图 import n
  • 可移植的非关系数据库

    我想尝试 尝试非关系数据库 最好的解决方案是 便携式 这意味着它不需要安装 理想情况下 只需将目录复制粘贴到某个地方即可使其工作 我不介意第一次使用时是否需要编辑一些配置文件或运行配置工具 可从 python 访问 适用于 Windows
  • 在加载“cv2”二进制扩展期间检测到递归

    我有一个小程序 在 pyinstaller 编译后返回 opencv 错误 但无需编译即可工作 我在 Windows 10 上使用 Python 3 8 10 Program 导入 pyautogui将 numpy 导入为 np导入CV2
  • 理解@property装饰器和继承[重复]

    这个问题在这里已经有答案了 这里是 Python 3 以防万一它很重要 我试图正确理解如何实现继承 property使用 我已经搜索了 StackOverflow 并阅读了大约 20 个类似的问题 但无济于事 因为他们试图解决的问题略有不同
  • 向 Python 2.6 添加 SSL 支持

    我尝试使用sslPython 2 6 中的模块 但我被告知它不可用 安装OpenSSL后 我重新编译2 6 但问题仍然存在 有什么建议么 您安装了 OpenSSL 开发库吗 我必须安装openssl devel例如 在 CentOS 上 在
  • 在ansible中合并字典

    我目前正在构建一个使用 ansible 安装 PHP 的角色 并且在合并字典时遇到一些困难 我尝试了多种方法来做到这一点 但我无法让它像我想要的那样工作 A vars file my default values key value my
  • 向量化 numpy bincount

    我有一个 2d numpy 数组 A我要申请np bincount 到矩阵的每一列A生成另一个二维数组B由原始矩阵每列的 bincounts 组成A 我的问题是 np bincount 是一个采用一维数组的函数 它不是像这样的数组方法B A
  • psutil:测量特定进程的CPU使用率

    我正在尝试测量进程树的 cpu 使用率 目前获取进程 没有子进程 的 cpu usage 就可以了 但我得到了奇怪的结果 import psutil p psutil Process PID p cpu percent 还给我float g
  • 从 C 线程调用 Python 代码

    我对从 C 或 C 线程调用 Python 代码时如何确保线程安全感到非常困惑 The Python 文档 http docs python org c api init html non python created threads似乎是
  • Jupyter Notebook 中的多处理与线程

    我试图测试这个例子here https ipywidgets readthedocs io en stable examples Widget 20Asynchronous html将其从线程更改为多处理 在 jupyter Noteboo
  • 使 matplotlib 图形默认看起来像 R?

    Is there a way to make matplotlib behave identically to R or almost like R in terms of plotting defaults For example R t
  • 如何动态创建 Luigi 任务

    我正在为 Luigi Tasks 构建一个包装器 但遇到了一个障碍Register http luigi readthedocs io en stable modules luigi task register html Register该

随机推荐

  • 从字符串中删除元素后如何跟踪字符位置?

    假设我有以下字符串 my dog jumps and he is a very good dog 1234567890123456789012345678901234567890123456789012345678901 lt char p
  • 为什么我需要在单引号中转义美元符号?

    在 PowerShell 中 单引号中的字符串应该忽略其中的特殊字符 但是如果我使用的话为什么我需要转义美元符号 match Src SOMETHING Good Src Good returns string as is Src matc
  • SAML:即使用户有 IDP 会话,是否也可以强制用户完成登录过程

    在 SAML 中 即使用户有活动的 idp 会话 是否也可以强制用户每次都执行 idp 的登录过程 在这里举一个具体的例子 我们将我的应用程序命名为 SP 我使用 SSOCirecle 作为 idp 并使用 POST 和重定向 SP 发起
  • python上的并行执行和文件写入

    我有一个非常大的数据集 分布在 10 个大集群中 任务是对每个集群进行一些计算 并将结果逐行写入 附加 到 10 个文件中 其中每个文件包含与 10 个集群中的每个集群相对应的获得的结果 每个集群都可以独立计算 我想将代码并行化到十个CPU
  • 侧边栏折叠一秒钟并在页面加载时展开

    我有一个侧边栏 单击按钮即可展开或折叠 现在我已经成功地将它的状态存储在localStorage除了有一个小问题之外 它工作正常 当页面加载并且没有保存状态时localStorage 侧边栏collapses一瞬间expands Expan
  • 在 WCF 中,超时是否会导致通道故障?

    在 WCF 中 请求 响应操作超时是否会导致客户端通道出现故障 如果服务器发送响应超时 是否是服务器端通道出现故障 是的 超时会导致通道出现故障 而且总是只有one连接客户端和服务器的通道 服务器没有自己的通道 你基本上有 Client T
  • 为什么我的 Javascript 音频在刷新页面后不起作用?

    我的 javascript 中有一个音频对象并调用了 play 函数 当我第一次进入该页面或通过其他页面的链接进入该页面时 它工作正常 但是当我在带有音频的页面上并且只想刷新页面时 我会收到音频错误 Uncaught in promise
  • 按多个值过滤对象数组

    我希望能够通过多个搜索词过滤一个对象来创建一个新的对象数组 Example const arr city Atlanta state Georgia city Chicago state Illinois city Miami state
  • 从网站加载数据作为字符串(Android)

    我知道如何使用 WebView 在 Android 中加载网站内容 webview loadUrl http slashdot org 我怎样才能将网站的内容放入字符串变量中 在我想将此字符串解析为 XML 之后 但这是下一个问题 以下是对
  • 使用 javascript 函数渲染 HTML

    我有一个静态页面login and registration链接 我希望当用户点击时Login 它调用一个Javascript函数依次显示Login Form在同一页上 虽然我可以将整个 HTML 标签嵌入document write 但这
  • 正浮点数的正则表达式

    例如 10 0 1 1 23234 123 1230 000001 1 000 3 以及错误的例子 0001 2 12 1 01 2 3 EDIT 标准 JavaScript 正则表达式 在这里试试这个 1 9 d 0 d See it 在
  • Dotnet Core 3.1:如何使用具有文件绝对路径的 AddJsonFile?

    我有一个 dotnet 应用程序 我需要从两个相对路径 常规路径 中提取配置appsettings Json appsettings Development json 并且还可以从绝对路径 config appsettings json 我
  • 如何在特定时间执行循环

    我如何在指定的时间内执行特定的循环 Timeinsecond 600 int time 0 while Timeinsecond gt time do something here 我如何在这里设置时间变量 如果我可以使用 Timer 对象
  • 检查发件人电子邮件地址

    我的 Outlook 框中有一个 VBA 侦听器 用于在收到来自特定电子邮件的邮件时执行操作 问题是 如果我收到错误邮件 未送达电子邮件 那么我的条件是在不具有该属性的邮件上运行 因此我的方法崩溃 我也不知道主题是什么 有谁知道我是否可以测
  • 泛型 在 C# 中不起作用,即使运行没有任何错误

    我正在使用 Silverlight 5 VS 2010 创建一个 C Web 应用程序 首先 我创建了控制台应用程序 一切正常 但是当我在网络应用程序中执行此操作时会出现问题 即使在网络应用程序中 它对于特定的设置数据类型也能正常工作 例如
  • 旧版本的 spring boot 无法在 Java 11 上启动

    我正在使用 spring boot 应用程序的 1 4 1 RELEASE Java 8 一切正常 但是 当我将 java 版本更新到 11 时 我无法使用命令运行应用程序mvn clean spring boot run 同时我可以打包成
  • 覆盖getter只需要@synthesize

    我想覆盖惰性实例化的 getter 并保留默认的 setter 我需要 synthesize 吗 Why interface Foo property strong nonatomic NSObject bar end implementa
  • 表达式/语句树

    进一步更新问题 我一直在尝试使用 NET 4 中的表达式树在运行时生成代码 并且我一直在尝试实现foreach通过构建表达式树来声明 最后 表达式应该能够生成执行此操作的委托 Action
  • 如何在 git 上执行 3 向视觉差异?

    我想对存在于 2 个不同分支中的单个文件进行 3 路比较 即每个分支中的最后一次提交 并考虑共同的祖先 我想使用一个允许进行三向比较的外部工具 我正在考虑使用 git difftool 但据我所知 它只允许比较给定文件的任何两个版本 我可以
  • 计算嵌套列表中包含特定元素的列表的数量

    我有一个列表 例如 res a b a a b c a 我想计算有多少个列表包含特定字母 例如 a 包含在 3 个列表中 b 包含在 2 个列表中 c 包含在 1 个列表中 下面的代码是我到目前为止所拥有的 count 0 docs a l