将嵌套的 For 循环转换为列表理解

Converting A Nested For Loop Into a List Comprehension

我正在尝试为这个嵌套的 for 循环编写一个嵌套的列表组件,但我找不到一个解决方案也包含一个跟踪器变量,因此非常感谢您的帮助。

所以故事是我有一个字典,其中单个单词作为键,一个句子列表作为值,我正在访问每个列表,然后访问列表中的每个句子,将其拆分为空格,并存储累积令牌计算新列表中的每个句子,最后重置计数并移至下一个列表。

# combines the sum of each sentence
l = []

# Tracker variable
sum_len = 0

# For each list in the dictionary values
for cl in word_freq.values():

    # For each sentence in the current list
    for sen in cl:

      # split into tokens and combine the sum of each sentence
      sum_len += len(sen.split())

    # Append the sum of tokens  
    l.append(sum_len)

    # Reset the variable
    sum_len = 0

如果你想从字典中创建一个字数列表,你可以这样做:

l = [sum(len(sen.split()) for sen in v) for v in word_freq.values()]