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

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(使用前将#替换为@)

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

  • 如何在 Matplotlib 饼图周围绘制箭头以将每个标签指向圆圈中各自的部分?

    我一直在用 Matplotlib 绘制一些图表 我有一个饼图 想要在图表周围绘制箭头 使每个标签都指向图表 我有一个例子 这是我当前的代码 import matplotlib pyplot as plt plt rcParams font
  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • 在 Celery 任务中调用 Google Cloud API 永远不会返回

    我正在尝试拨打外部电话Google Cloud Natural Language API从一个内Celery任务 使用google cloud python包裹 问题是对 API 的调用永远不会返回 挂起 celery task def g
  • 我应该使用 Python 双端队列还是列表作为堆栈? [复制]

    这个问题在这里已经有答案了 我想要一个可以用作堆栈的 Python 对象 使用双端队列还是列表更好 元素数量较少还是数量较多有什么区别 您的情况可能会根据您的应用程序和具体用例而有所不同 但在一般情况下 列表非常适合堆栈 append is
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • PyQt 使用 ctrl+Enter 触发按钮

    我正在尝试在我的应用程序中触发 确定 按钮 我当前尝试的代码是这样的 self okPushButton setShortcut ctrl Enter 然而 它不起作用 这是有道理的 我尝试查找一些按键序列here http ftp ics
  • MongoEngine 查询具有以列表中指定的前缀开头的属性的对象的列表

    我需要在 Mongo 数据库中查询具有以列表中任何前缀开头的特定属性的元素 现在我有一段这样的代码 query mymodel terms term in query terms 并且这会匹配在列表 term 上有一个项目的对象 该列表中的
  • 打印数字时添加千位分隔符[重复]

    这个问题在这里已经有答案了 我真的不知道这个问题的 名称 所以它可能是一个不正确的标题 但问题很简单 如果我有一个数字 例如 number 23543 second 68471243 我想要它使print 像这样 23 54368 471
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • 使用 Python Oauthlib 通过服务帐户验证 Google API

    我不想使用适用于 Python 的 Google API 客户端库 但仍想使用 Python 访问 Google APIOauthlib https github com idan oauthlib 创建服务帐户后谷歌开发者控制台 http
  • Django 视图中的“请求”是什么

    在 Django 第一个应用程序的 Django 教程中 我们有 from django http import HttpResponse def index request return HttpResponse Hello world
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • Protobuf 如何编码 oneof 消息结构

    对于这个 python 程序 在编码时运行 protobuf 编码会给出以下输出 0a 10 08 7f8a 0104 08 02 10 0392 0104 08 02 10 03 18 01 我不明白的是为什么8a后面有一个01 为什么9
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视
  • pytest找不到模块[重复]

    这个问题在这里已经有答案了 我正在关注pytest 良好实践 https docs pytest org en latest explanation goodpractices html test discovery或者至少我认为我是 但是
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

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

    假设我有以下字符串 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