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