Python one-line "for" expression

Question:

I’m not sure if I need a lambda, or something else. But still, I need the following:

I have an array = [1,2,3,4,5]. I need to put this array, for instance, into another array. But write it all in one line.

for item in array:
    array2.append(item)

I know that this is completely possible to iterate through the items and make it one-line. But googling and reading manuals didn’t help me that much… if you can just give me a hint or name this thing so that I could find what that is, I would really appreciate it.

Update: let’s say this: array2 = SOME FANCY EXPRESSION THAT IS GOING TO GET ALL THE DATA FROM THE FIRST ONE

(the example is NOT real. I’m just trying to iterate through different chunks of data, but that’s the best I could come up with)

Asked By: 0100110010101

||

Answers:

for item in array: array2.append (item)

Or, in this case:

array2 += array
Answered By: liori

The keyword you’re looking for is list comprehensions:

>>> x = [1, 2, 3, 4, 5]
>>> y = [2*a for a in x if a % 2 == 1]
>>> print(y)
[2, 6, 10]
Answered By: Adam Rosenfield

If you’re trying to copy the array:

array2 = array[:]
Answered By: a paid nerd

If you really only need to add the items in one array to another, the ‘+’ operator is already overloaded to do that, incidentally:

a1 = [1,2,3,4,5]
a2 = [6,7,8,9]
a1 + a2
--> [1, 2, 3, 4, 5, 6, 7, 8, 9]
Answered By: ewall

Even array2.extend(array1) will work.

Answered By: Prabhu
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.