My Homework question: -
Write a function called
intGrid
that takesn
andd
as keyword parametersn
anddim
respectively, and returns a Python set containing the points in the grid as Python tuples.E.g.
intGrid(n=2, dim=2)
should return the set{(0, 0), (0, 1), (1, 0), (1, 1)}
.
Basically n
== Number of elements and dim
== dimension required.
Here is the code snippet I have written for the above problem: -
def intGrid(n, dim):
''' Returns an integer grid of dimension dim consisting of non-negative integer coordinates in the range
0 to n-1.
'''
onedtuple = () # A tuple of 1 D values
for x in range(n):
onedtuple = onedtuple + (x,)
fertiletuple = onedtuple # Fertile tuple will hold the updated tuples.
answer = {} # Creating an empty list for comprehension usage.
for x in range(1, dim):
answer = {(y,z,) for y in onedtuple for z in fertiletuple}
fertiletuple = tuple(answer)
return set(fertiletuple)
The problem I am facing is that the desired output contents are correct but its framework is not. For eg: -
The desired output for n = 2
and dim = 3
is: -
{(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)}
The output I am getting is: -
{(0, (0, 0)), (0, (0, 1)), (0, (1, 0)), (0, (1, 1)), (1, (0, 0)), (1, (0, 1)), (1, (1, 0)), (1, (1, 1))}
ie. a nested tuple.
The problem worsens when dim>3
.
For eg. The desired output for n = 2
and dim = 4
is: -
{(0, 0, 0, 0), (0, 0, 0, 1), (0, 0, 1, 0), (0, 0, 1, 1), (0, 1, 0, 0), (0, 1, 0, 1), (0, 1, 1, 0), (0, 1, 1, 1), (1, 0, 0, 0), (1, 0, 0, 1), (1, 0, 1, 0), (1, 0, 1, 1), (1, 1, 0, 0), (1, 1, 0, 1), (1, 1, 1, 0), (1, 1, 1, 1)}
The output I am getting is: -
{(0, (0, (0, 0))),
(0, (0, (0, 1))),
(0, (0, (1, 0))),
(0, (0, (1, 1))),
(0, (1, (0, 0))),
(0, (1, (0, 1))),
(0, (1, (1, 0))),
(0, (1, (1, 1))),
(1, (0, (0, 0))),
(1, (0, (0, 1))),
(1, (0, (1, 0))),
(1, (0, (1, 1))),
(1, (1, (0, 0))),
(1, (1, (0, 1))),
(1, (1, (1, 0))),
(1, (1, (1, 1)))}
I have tried all the methods to flatten the tuple, but for dim>=3
, the nested tuple problem still persists. Please help.
Note: -
Value of n >= 1
and dim >=1
source https://stackoverflow.com/questions/73778772/flattening-a-nested-tuple-in-order-to-make-an-integer-grid
Comments
Post a Comment