首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中的嵌套元组中查找单个项的计数

在python中的嵌套元组中查找单个项的计数
EN

Stack Overflow用户
提问于 2015-09-23 03:52:29
回答 3查看 799关注 0票数 2

我有包含嵌套元组的元组。找到元组中单个项目总数的最简单方法是什么?我正在使用python 3

元组看起来就像

代码语言:javascript
复制
(('BCG', 'OPV 0', 'Hep-B 1'), ('DTwP 1', 'IPV 1', 'Hep-B 2', 'Hib 1', 'Rotavirus 1', 'PCV 1'), ('DTwP 2', 'IPV 2', 'Hib 2', 'Rotavirus 2', 'PCV 2'), ('DTwP 3', 'IPV 3', 'Hib 3', 'Rotavirus 3', 'PCV 3'), ('OPV 1', 'Hep-B 3'), ('OPV 2', 'MMR-1'), ('Typhoid', 'Conjugate Vaccine'), 'Hep-A 1', ('MMR 2', 'Varicella 1', 'PCV booster'), ('DTwP B1/DTaP B1', 'IPV B1, Hib B1'), 'Hep-A 2', 'Typhoid booster', ('DTwP B2/DTaP B2', 'OPV 3', 'Varicella 2', 'Typhoid booster'), ('Tdap/Td', 'HPV'))

我想要元组中所有项目的总数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-23 03:57:39

如果您指的是整个数据集中的每个单独项,那么您可以很容易地这样做:

代码语言:javascript
复制
data = (('BCG', 'OPV 0', 'Hep-B 1'), ...)
unique = len(set(x for inner in data for x in inner))

就这样。

它的工作方式是遍历每个内部元组,然后遍历每个元组中的每个项。将它们添加到集合中(所有项必须是唯一的),然后计算该集的大小。

编辑:也许我误解了“个别项目”,我以为你想忽略重复。

票数 1
EN

Stack Overflow用户

发布于 2015-09-23 04:00:05

您有一个元组的元组,并且想知道其中有多少项。这就意味着:

代码语言:javascript
复制
>>> t = (('BCG', 'OPV 0', 'Hep-B 1'), ('DTwP 1', 'IPV 1', 'Hep-B 2', 'Hib 1', 'Rotavirus 1', 'PCV 1'), ('DTwP 2', 'IPV 2', 'Hib 2', 'Rotavirus 2', 'PCV 2'), ('DTwP 3', 'IPV 3', 'Hib 3', 'Rotavirus 3', 'PCV 3'), ('OPV 1', 'Hep-B 3'), ('OPV 2', 'MMR-1'), ('Typhoid', 'Conjugate Vaccine'), 'Hep-A 1', ('MMR 2', 'Varicella 1', 'PCV booster'), ('DTwP B1/DTaP B1', 'IPV B1, Hib B1'), 'Hep-A 2', 'Typhoid booster', ('DTwP B2/DTaP B2', 'OPV 3', 'Varicella 2', 'Typhoid booster'), ('Tdap/Td', 'HPV'))
>>> sum(len(x) for x in t)
65

t是元组的元组。xt中的每个元组。这是所有x的长度之和。

票数 0
EN

Stack Overflow用户

发布于 2015-09-23 04:02:42

代码语言:javascript
复制
t = (('BCG', 'OPV 0', 'Hep-B 1'), ('DTwP 1', 'IPV 1', 'Hep-B 2', 'Hib 1', 'Rotavirus 1', 'PCV 1'), ('DTwP 2', 'IPV 2', 'Hib 2', 'Rotavirus 2', 'PCV 2'), ('DTwP 3', 'IPV 3', 'Hib 3', 'Rotavirus 3', 'PCV 3'), ('OPV 1', 'Hep-B 3'), ('OPV 2', 'MMR-1'), ('Typhoid', 'Conjugate Vaccine'), 'Hep-A 1', ('MMR 2', 'Varicella 1', 'PCV booster'), ('DTwP B1/DTaP B1', 'IPV B1, Hib B1'), 'Hep-A 2', 'Typhoid booster', ('DTwP B2/DTaP B2', 'OPV 3', 'Varicella 2', 'Typhoid booster'), ('Tdap/Td', 'HPV'))
sum(map(lambda  x:len(x),t))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32730662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档