如何在python中将嵌套循环转换为列表解析

时间:2017-12-22 18:21:18

标签: python list list-comprehension

如何将此代码转换为python中的列表理解

max_len = []
for word in fourier_dict:
    word = fourier_dict[word]
    for occur in word:
        max_len.append(len(occur))

我是python的新手,我必须将这个嵌套循环转换为列表理解,我无法弄清楚。一点帮助将非常感激。

3 个答案:

答案 0 :(得分:6)

max_len = [len(occur) for word in fourier_dict for occur in fourier_dict[word]]

应该工作。

答案 1 :(得分:3)

首先,您实际上并未使用dict的密钥,因此您可以简化为:

max_len = []
for word in fourier_dict.values():
    for occur in word:
        max_len.append(len(occur))

直接迭代值(如果它是Py2代码则使用.itervalues()以避免临时list)。从那里,它是一个简单的转换为listcomp,值为"追加"在最左边,而循环从左到右排列,从最外面到最里面:

max_len = [len(occur) for word in fourier_dict.values() for occur in word]

答案 2 :(得分:0)

你可以试试这个:

s = [len(i) for a, b in fourier_dict.items() for i in b]