I want to create a function that takes a 2 dimensional list and outputs a 1 dimensional list with the same contents.
Here is what I have:
twoDlist= [[23, 34, 67],[44,5,3],[7,8,9]]
def twoone (list1):
for x in range(len(list1)):
for y in range(len(list1)):
list2=[]
list2.append(list1[x][y])
print(twoone(twoDlist))
Only problem it returns ‘None’. What is wrong, and how can I fix it?
Two issues here, the first is that you are not returning a value and the second is that you are resetting
list2to an empty list inside of your nested loop, so at the end you would only have a single element in it.Here is how you could fix your code:
However, there are much better ways to do this, see the link in jtbandes’ comment.
The best way is
itertools.chain():