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!
CodePudding user response:
you can do this way
>>> result =tuple((0,1) for _ in range(4))
>>> result
((0, 1), (0, 1), (0, 1), (0, 1))
CodePudding user response:
A possible solution is this one:
g = tuple((0,1) for i in range(4))
CodePudding user response:
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. If any other question, please let me know :)
CodePudding user response:
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)])