v = input("enter the vertices: ")
v = [x.strip(' ') for x in v.split(',')]
e = input("enter the edges: ")
e = [x.strip(' ') for x in e.split(',')]
edges = set(e)
print(edges)
正如标题所示,我想将设置从输出{'a-b', 'c-a', 'b-c'}
更改为{('a','b'),('b','c'),('c','a')}
,因此更容易将数据作为边引用。我该怎么做?
答案 0 :(得分:1)
您只需使用集合理解解析边缘并在.buttonclass{ display:block; margin: auto; }
上拆分:
'-'
答案 1 :(得分:0)
要将e = input("enter the edges: ")
e = {tuple(x.strip().split('-')) for x in e.split(',')}
转换为{'a-b', 'c-a', 'b-c'}
,您可以使用生成器表达式将基于{('a','b'),('b','c'),('c','a')}
的集合中的每个字符串项拆分为:
-
但是,您无需创建一组字符串。如果要在第一次迭代时创建所需的集合,可以执行以下操作:
>>> input_set = {'a-b','b-c','c-a'}
# v `str.split()` returns list. And list are non-hashable.
# v type-cast it to tuple in order to use it with `set`.
>>> output_Set = set(tuple(s.split('-')) for s in input_set)
>>> output_Set
{('c', 'a'), ('b', 'c'), ('a', 'b')}