If you don't mind treating arrays as dictionaries. ar=[(1,2,3),(4,5,6),(7,8,9)] arD={} for x in range(len(ar)): xdat=ar[x] for y in range(len(xdat)): ydat=xdat[y] arD[(x,y)]=ydat def getVslice(a, x, start=0, stop= -1): res=[] while start != stop: value=a.get((x,start)) if value==None: break res.append(value) start+=1 return res print arD print getVslice(arD, 0) print getVslice(arD, 1, 1,2) print getVslice(arD, 2,1) ############# output {(0, 1): 2, (2, 2): 9, (2, 1): 8, (2, 0): 7, (1, 2): 6, (0, 0): 1, (1, 0): 4, (1, 1): 5, (0, 2): 3} [1, 2, 3] [5] [8, 9] --Darrell "mary" <mary.stern at virgin.net> wrote: > I have a simple problem and am interested to find > the 'best' way to do this in python: > > Given a list such as: > > x[0] = (1,2,3) > x[1] = (4,5,6) > x[2] = (7,8,9) > > what's the best way to 'take vertical slices' from this > matrix, ie end up with: > > y[0] = (1,4,7) > y[1] = (2,5,8) > y[2] = (3,6,9) > > Cheers! > Tushar. > >
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4