Hi Marusia,

On Thu, Oct 28, 2010 at 7:02 AM, m.rebolledo
<[email protected]> wrote:
> Hello,
> how to do the union of several lists (more than two)?

Lists are multisets, so I assume you mean to combine several lists
into one, while retaining duplicate elements. You could do so using
the list concatenation operator "+":

sage: L1 = [2, 3, 5, 7, 11]
sage: L2 = ["a", "b", "c", 13]
sage: L3 = [1/2, 1/3, 1/4]
sage: L1 + L2 + L3
[2, 3, 5, 7, 11, 'a', 'b', 'c', 13, 1/2, 1/3, 1/4]

Via the list method extend():

sage: L = []
sage: L.extend(L1)
sage: L.extend(L2)
sage: L.extend(L3)
sage: L
[2, 3, 5, 7, 11, 'a', 'b', 'c', 13, 1/2, 1/3, 1/4]

Or use the Sage built-in function flatten():

sage: flatten([L1, L2, L3])
[2, 3, 5, 7, 11, 'a', 'b', 'c', 13, 1/2, 1/3, 1/4]

If you really want to remove duplicate elements in the final combined
list, use Set():

sage: L1 = [1, 2]
sage: L2 = [2, 3, 4]
sage: L3 = ["a", "b"]
sage: Set(L1 + L2 + L3)
{'a', 1, 2, 3, 4, 'b'}
sage: list(Set(L1 + L2 + L3))
['a', 1, 2, 3, 4, 'b']


> and how to
> remove some elements of the lists?

Use the operator del:

sage: L
[2, 3, 5, 7, 11, 'a', 'b', 'c', 13, 1/2, 1/3, 1/4]
sage: L[0]
2
sage: del L[0]; L
[3, 5, 7, 11, 'a', 'b', 'c', 13, 1/2, 1/3, 1/4]
sage: L[-1]
1/4
sage: del L[-1]; L
[3, 5, 7, 11, 'a', 'b', 'c', 13, 1/2, 1/3]


> I know that it is probably
> elementary but I did not find it in the help... :(

See the Python tutorial [1] for some introductory materials on using
lists. This page [2] and this page [3] provide detailed information on
operations on lists.


[1] http://docs.python.org/tutorial/introduction.html#lists

[2] 
http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-buffer-xrange

[3] http://docs.python.org/library/stdtypes.html#typesseq-mutable

-- 
Regards
Minh Van Nguyen

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to