在嵌套列表的第一个位置计数相同的元素

辛尼沙

使用嵌套列表[machine#,job#]在3台计算机上计划4个作业

schedule = [[1, 0], [2, 1], [3, 2], [3, 3]]

我想计算一下机器3的使用频率。

我尝试使用,schedule.count(3)但没有得到任何输出,我想它还是会检查所有元素。

丹妮·梅塞乔

要使用count,您需要创建计算机列表(通过从对列表中提取每台计算机)并计算的出现次数3,例如,如下所示:

schedule = [[1, 0], [2, 1], [3, 2], [3, 3]]
lst_count = [ma for ma, _ in schedule].count(3)  # using list and count

上面的方法效率低下,因为它会创建一个列表并对其应用计数。一种更有效的方法是使用@schwobaseggl建议的生成器表达式,以下是建议的生成器的一种替代方法:

schedule = [[1, 0], [2, 1], [3, 2], [3, 3]]
gen_count = sum(1 for ma, _ in schedule if ma == 3)  # using a generator

最后,如果您只想计算单台计算机的出现次数,1并且例如,如果您想要多台计算机的出现次数,那么两种方法都可以正常工作3,我建议您使用Counter

from collections import Counter

schedule = [[1, 0], [2, 1], [3, 2], [3, 3]]
counts = Counter(ma for ma, _ in schedule)  # using Counter
print(counts[3])
print(counts[1])

输出量

2
1

更新资料

除上述方法外,您还可以使用一个简单的for循环和一个计数器变量:

schedule = [[1, 0], [2, 1], [3, 2], [3, 3]]

counter = 0
for ma, _ in schedule:
    if ma == 3:
        counter += 1
print(counter)  # 2

注意

ma, _ = x符号称为拆包。在编写时,ma, _Python期望schedule列表中的每个元素都是一对元素。例如,x, y = [1, 2]将值1x和值2y使用_简单意味着忽略第二个值。

进一步

  1. http://treyhunner.com/2018/03/tuple-unpacking-improves-python-code-readability/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在嵌套列表中查找某个成员不存在的第一个位置

列表/嵌套列表中的第一个元素

计算嵌套列表中的第一个元素

选择嵌套列表的第一个元素

Python:嵌套列表中的第一个元素

嵌套列表中的第一个元素的总和

如何访问嵌套列表的第一个元素?

根据第一个元素组合嵌套列表

检索表时,无法在表中的第一个位置获得第一个元素?

如何使输出打印每三个相同数字的第一个位置?

打印链接列表时,最后一个元素值出现在第一个和最后一个位置

列表列表中的第一个位置出现

隐藏其他元素后将图像移动到第一个位置

Onclick将元素移到第一个位置

将元素移到数组中的第一个位置

为什么元素在动画后回到第一个位置?

如何通过在第一个位置插入元素来更新数组

如何始终将元素放在第一个位置?

将数组元素移动到第一个位置但保持顺序

jQuery,如何通过属性的第一个位置值选择元素

如何将列表的第一个元素的值连接到下一个位置?- Python

如何添加到列表的第一个位置?

如何将列表项移到第一个位置然后移回?

在列表中查找值的第一个位置

将嵌套列表的第一个元素绑定到嵌套列表的后续元素

查找排序数组中元素的第一个和最后一个位置

PHP 多维数组排序在第一个位置保留一个元素值

如何转换所有元组的第一个元素,然后在Python中移动一个位置?

基于嵌套列表的第一个元素合并嵌套列表