# What's the vector equivalent to Pythons list addition? [1,2]+[3,4]=[1,2,3,4]

 2 What's the best way of appending vectors in sage? I'm after the equivalent of Python list addition [1,2]+[3,4]=[1,2,3,4] asked Dec 10 '10 mandrake 53 ● 1 ● 10

 3 You could define two homomorphisms into the free module of rank len(v1)+len(v2): sage: v1 = vector([1,2]) sage: v2 = vector([3,4]) sage: R = v1.parent(); R Ambient free module of rank 2 over the principal ideal domain Integer Ring sage: F = FreeModule(ZZ,4) sage: F.gens() ((1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1)) sage: phi1 = R.hom(F.gens()[0:2]); phi1 Free module morphism defined by the matrix [1 0 0 0] [0 1 0 0] Domain: Ambient free module of rank 2 over the principal ideal domain ... Codomain: Ambient free module of rank 4 over the principal ideal domain ... sage: phi2 = R.hom(F.gens()[2:4]); phi2 Free module morphism defined by the matrix [0 0 1 0] [0 0 0 1] Domain: Ambient free module of rank 2 over the principal ideal domain ... Codomain: Ambient free module of rank 4 over the principal ideal domain ... sage: phi1(v1) + phi2(v2) (1, 2, 3, 4)  Note that this may have some aesthetic appeal, but your vector(v1.list() + v2.list()) is much more direct :) posted Dec 10 '10 niles 3429 ● 5 ● 41 ● 94 http://nilesjohnson.net/ That, I beliveve, I would never have found myself :) Thanks mandrake (Dec 16 '10)
 2 I'll start off with the hugely ugly create lists from vectors, append and create vector again. >>> v1 = vector([1,2]) >>> v2 = vector([3,4]) >>> vector( list(v1) + list(v2) ) (1,2,3,4)  posted Dec 10 '10 mandrake 53 ● 1 ● 10

[hide preview]