创建一个for循环,检查元素是否在字典中

时间:2019-04-04 06:43:16

标签: python python-3.x for-loop

我正在尝试构造一个for循环,在该循环中检查元素是否在字典中。

dict = {}

if element1 in dict:
    dict[element1].add(element2)
elif element1 not in dict:
    dict[element1]=set().add(element2)
elif element2 in dict:
    dict[element2].add(element1)
elif element 2 not in dict:
    dict[element2]=set().add(element1)

我要获取的字典具有以下数据结构; dict={element 1:{element 2, element 3}, element2:{element3, element1}, ...}(因此,请在字典中设置)。

2 个答案:

答案 0 :(得分:1)

似乎您只是在寻找一种向字典中的集合添加元素的方法,如果还不存在则创建该集合。您可以使用DefaultDict为您做到这一点。

?? string.Empty.Trim() 

礼物:

from collections import defaultdict
dict = defaultdict(set)
edges = [("element1", "element2"), ("element3", "element1"), ("element4", "element2")]
for edge in edges:
    dict[edge[0]].add(edge[1])
    dict[edge[1]].add(edge[0]) # Remove if graph is directed

答案 1 :(得分:0)

这是我的最终代码

elements = [("value1", "value2"), ("value3", "value4"), ("value4", "value2")]
sorted_elements = {}

for element1, element2 in elements:
    sorted_elements.setdefault(element1, set()); sorted_elements.setdefault(element2, set())
    sorted_elements[element1].add(element2); sorted_elements[element2].add(element1)

print(sorted_elements)

它将输出

{'element1': {'element2', 'element3'}, 'element2': {'element1', 'element4'}, 'element3': {'element1'}, 'element4': {'element2'}}