[英]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.