繁体   English   中英

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

[英]How to convert a nested loop to a list comprehension in python

我如何将这段代码转换为python中的列表理解

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

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

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

应该管用。

因此,首先,您实际上并没有使用dict的键,因此可以简化为:

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

直接迭代值(如果使用的是Py2代码,请使用.itervalues()以避免出现临时list )。 从那里开始,它是对listcomp的简单转换,“ append”的值在最左边,而循环从最外侧到最内侧从左到右排列:

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

您可以尝试以下方法:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM