how to store arrays inside tuple in Python?

Question:

I have a simple question in python. How can I store arrays inside a tuple in Python. For example:

I want the output of my code to be like this:

bnds = ((0, 1), (0, 1), (0, 1), (0, 1))

So I want (0, 1) to be repeated for a specific number of times inside a tuple!

I have tried to use the following code to loop over a tuple:

g = (())
for i in range(4):
    b1 = (0,1) * (i)
    g = (g) + (b1)
print(g)

However, the output is :

(0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1)

Maybe this is a simple question but I am still beginner in python!

Any help!

Asked By: Mhmoud Khadija

||

Answers:

You could create a list, fill it up, then convert it to a tuple.

g = []
b1 = (0, 1)

for i in range(4):
    g.append(b1)
g = tuple(g)
print(g)

There are cleaner ways to do it, but I wanted to adapt your code in order to help you understand what is happening.

Answered By: Riya

You can’t change the items in tuple. Create g as a list then convert it into a tuple.

g = []
for i in range(4):
    b1 = (0,1) * (i)
    g .append(b1)
g = tuple(g)

Using list comprehension makes the code faster :

g = tuple([(0,1)*i for i in range(4)])

To get the output asked:

g = tuple([(0,1) for i in range(4)])
Answered By: solac34

you can do this way

>>> result =tuple((0,1) for _ in range(4))
>>> result 
((0, 1), (0, 1), (0, 1), (0, 1))
Answered By: sahasrara62

A possible solution is this one:

g = tuple((0,1) for i in range(4))

Answered By: Ulisse Rubizzo
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.