列表理解转换

List comprehensions Conversion

我最近开始学习 Python,但我在将下面的代码片段转换为列表理解时遇到困难:

    list = []     #An empty List
    for key,value in defaultDict.items():#iterate through the default dict
        for i in defaultDict[key]:#iterate through the list in the defaultDict
            if i not in list:#If the item in the list is not present in the main list
                list.append(i)#append it

我能做到吗?非常感谢任何帮助。

非常简单:使用嵌套列表推导来获取所有 is 和一个集合来删除重复项。

list(set([item for __, value in defaultDict.items() for item in value]))

让我们分解一下:

  • [item for key,value in defaultDict.items() for item in value]nested list comprehension.
  • set(...) 将删除所有重复项 - 相当于您拥有的 if i not in list: list.append(i) 逻辑
  • list(set(...)) 将为您将集合转换回列表。