簡體   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