【问题标题】:Count the occurrence per nested list in another list in Python计算Python中另一个列表中每个嵌套列表的出现次数
【发布时间】:2021-04-16 13:21:17
【问题描述】:

我正在努力获得我想要的输出。我有两个列表,如下图所示:

h3_FP_DB = [['KE', 'EH', 'LA'], ['KE', 'EH'], ['KE'], ['EH'], ['KE', 'EH']]

h3_FP = [['KE'], ['KE', 'LA'], ['KE', 'EH', 'LA'],  ['KE', 'EH'], ['LA'], ['LA', 'EH'], ['EH']]

我想知道列表 h3_FP_DB 中 h3_FP 中每个嵌套列表的出现情况。因此,使用上面的示例我想要的输出将给出下面的计数。我不知道哪种类型/结构是有益的:

KE: 4
KE, LA: 1
KE, EH, LA: 1
KE, EH: 3
LA: 4
LA, EH: 1
EH: 4

使用this 示例中的代码,我编写了以下代码:

h3_FP_Occurence = []

for i in range(len(h3_FP)):
  count = len([i for idx in range(len(h3_DB_FP)) if h3_DB_FP[idx : idx + len(i)] == i])
  h3_DB_FP.append(count)

这给了我以下错误

TypeError: object of type 'int' has no len()

我在堆栈溢出和网络中进行了广泛的研究,但我找不到任何东西。关于如何计算主列表中嵌套列表的出现次数的任何想法?

【问题讨论】:

    标签: python list count nested-lists find-occurrences


    【解决方案1】:

    您可以使用嵌套字典/列表推导来检查h3_FP 中每个列表中的每个值是否在h3_FP_DB 中的每个列表中,并将结果输出到字典列表中:

    h3_FP_Occurence = [{ ', '.join(l): sum(all(v in hl for v in l) for hl in h3_FP_DB) } for l in h3_FP]
    

    输出:

    [
     {'KE': 4},
     {'KE, LA': 1},
     {'KE, EH, LA': 1},
     {'KE, EH': 3},
     {'LA': 1},
     {'LA, EH': 1},
     {'EH': 4}
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 2020-08-17
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      相关资源
      最近更新 更多