【发布时间】:2016-08-16 20:20:00
【问题描述】:
这是我的任务:
编写一个函数inverse(rel),它接受关系rel 并返回关系rel 的逆关系。关系 R 的逆关系 InvsetR 定义为 InvsetR = {(x, y) ∈ S × S |(y, x) ∈ R)}。示例:
inRelation({(1,1), (1,2), (2,3), (4,2)}) 应该返回
{(1,1), (2,1), (3,2), (2,4)}
这是我的代码:
def inverse(rel):
m=set()
for (x,y) in rel:
m.add(y,x)
return m
它说我只能添加一个元素。我能做什么?
【问题讨论】:
-
你应该像这样添加一对
(y, x):m.add((y, x))。 -
你需要使用
m.add((y,x)) -
m.add(x,y)使用 两个 参数x和y调用add函数。你需要传递一个参数:元组(x,y),所以你需要写m.add((x,y))。 -
非常感谢!它现在可以工作了.. 但不是 {(1,1), (2,1), (3,2), (2,4)} 它返回 {(3, 2), (1, 1), (2 , 4), (2, 1)}.. 为什么?我该怎么办?
-
@Margarita:在 Python 中,set 是唯一元素的无序集合。要获得有序列表,请使用:
sorted(m)。
标签: python set add relation inverse