Just change
if (C in Subsets(G.neighbors(1))):
to
if (x!=y and C in Subsets(G.neighbors(1))):

It's probably more efficient to write something like:

N=Set(G.neighbors(1))
NN={x for x in G.neighbors(y) for y in N}  # neighbours of neighbours of 1
NN={x for x in NN if Set(G.neighbors(x)).issubset(N)}  # subset of NN with 
neighbours contained in N
print [(x,y) for (x,y) in CartesianProduct(NN,NN) if x!=y]

Andrew

On Thursday, 9 January 2014 08:27:25 UTC+1, Neda wrote:
>
>  Hello, I want to compute this:
>
> G= graphs.CompleteGraph(4)
> G.delete_edge({1,2})
> L = [u for u in G.vertices()]
> for x in L:
>     for y in L:
>         A = Set(G.neighbors(x))
>         B = Set(G.neighbors(y))
>         C= A.union(B)
>         if (C in Subsets(G.neighbors(1))):
>             print(x,y)
> the result is :
>
> (1, 1)
> (1, 2)
> (2, 1)
> (2, 2)
>
>
> but I don't want the function prints (1,1) & (2,2)
>
> so what should I write in the function to omit these pairs? 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to