How to append multiple values to a list in Python

PythonList

Python Problem Overview


I am trying to figure out how to append multiple values to a list in Python. I know there are few methods to do so, such as manually input the values, or put the append operation in a for loop, or the append and extend functions.

However, I wonder if there is a more neat way to do so? Maybe a certain package or function?

Python Solutions


Solution 1 - Python

You can use the sequence method list.extend to extend the list by multiple values from any kind of iterable, being it another list or any other thing that provides a sequence of values.

>>> lst = [1, 2]
>>> lst.append(3)
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]

>>> lst.extend([5, 6, 7])
>>> lst.extend((8, 9, 10))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> lst.extend(range(11, 14))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

So you can use list.append() to append a single value, and list.extend() to append multiple values.

Solution 2 - Python

Other than the append function, if by "multiple values" you mean another list, you can simply concatenate them like so.

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]

Solution 3 - Python

If you take a look at the official docs, you'll see right below append, extend. That's what your looking for.

There's also itertools.chain if you are more interested in efficient iteration than ending up with a fully populated data structure.

Solution 4 - Python

letter = ["a", "b", "c", "d"]
letter.extend(["e", "f", "g", "h"])
letter.extend(("e", "f", "g", "h"))
print(letter)
... 
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'e', 'f', 'g', 'h']
    

Solution 5 - Python

if the number of items was saved in a variable say n. you can use list comprehension and plus sign for list expansion.

lst = ['A', 'B']
n = 1
new_lst = lst + ['flag'+str(x) for x in range(n)]
print(my_lst)

>>> ['A','B','flag0','flag1']

Solution 6 - Python

I can't add a comment, but I can't be silent either if the number of items was saved in a variable say n. you can use list comprehension and plus sign for list expansion.

lst = ['A', 'B']
n = len(lst)
my_lst = lst + ['flag'+str(x) for x in range(n)]
print(my_lst)

>>>['A', 'B', 'flag0', 'flag1']

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionChangeMyNameView Question on Stackoverflow
Solution 1 - PythonpokeView Answer on Stackoverflow
Solution 2 - PythonsliderView Answer on Stackoverflow
Solution 3 - PythonSilas RayView Answer on Stackoverflow
Solution 4 - PythonRhinolamerView Answer on Stackoverflow
Solution 5 - PythonBenSeedGangMuView Answer on Stackoverflow
Solution 6 - PythonIvan IvanovView Answer on Stackoverflow