我最近开始学习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
我什至可以这样做吗?对此的任何帮助都将不胜感激。
最佳答案
非常简单:使用嵌套列表推导获取所有i
和一组删除重复项。
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(...))
会将设置转换回给您一个列表。关于python - 列表推导转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39823593/