##### Columns in a table
 Columns in a table Reldaing Silly Frenchman Posts: 22 Threads: 12 Joined: Nov 2019 Reputation: Nov-19-2019, 09:13 PM Hi, I'm looking for switching two columns in a table. I made a function , but I doon't know the syntax of an array switching in python . Could you guys help me please? Thx ```def changeColumns(): a = [[1, 2, 3, 4, 5, 6, 7, 8, 9], [4, 5, 6, 7, 8, 9, 1, 2, 3], [7, 8, 9, 1, 2, 3, 4, 5, 6], [2, 3, 1, 5, 6, 4, 8, 9, 7], [5, 6, 4, 8, 9, 7, 2, 3, 1],[8, 9, 7, 2, 3, 1, 5, 6, 4], [3, 1, 2, 6, 4, 5, 9, 7, 8], [6, 4, 5, 9, 7, 8, 3, 1, 2], [9, 7, 8, 3, 1, 2, 6, 4, 5]] a[1,2,3,4,5,6,7,8,9][0],a[1,2,3,4,5,6,7,8,9][1]= a[1,2,3,4,5,6,7,8,9][1],a[1,2,3,4,5,6,7,8,9][0] #This is what i want to fix for i in range(len(a)): for j in range(len(a[i])): print(a[i][j], end=' ') print()``` Reply jefsummers Da Bishop Posts: 1,037 Threads: 1 Joined: May 2019 Reputation: Nov-19-2019, 09:31 PM a is a list of lists. To swap the first and second lists: ```def changeColumns(): a = [[1, 2, 3, 4, 5, 6, 7, 8, 9], [4, 5, 6, 7, 8, 9, 1, 2, 3], [7, 8, 9, 1, 2, 3, 4, 5, 6], [2, 3, 1, 5, 6, 4, 8, 9, 7], [5, 6, 4, 8, 9, 7, 2, 3, 1],[8, 9, 7, 2, 3, 1, 5, 6, 4], [3, 1, 2, 6, 4, 5, 9, 7, 8], [6, 4, 5, 9, 7, 8, 3, 1, 2], [9, 7, 8, 3, 1, 2, 6, 4, 5]] temp = a[1] a[1] = a[0] a[0] = temp print(a) changeColumns()``` Reply Posts: 3,080 Threads: 44 Joined: Jan 2018 Reputation: Nov-19-2019, 09:47 PM Why not `a[0], a[1] = a[1], a[0]` Reply Reldaing Silly Frenchman Posts: 22 Threads: 12 Joined: Nov 2019 Reputation: Nov-19-2019, 09:48 PM (This post was last modified: Nov-19-2019, 09:48 PM by Reldaing.) I did manage changing both lines in my table, but the issue is the colums , look: ```def changeLines(c,d): a = [[1, 2, 3, 4, 5, 6, 7, 8, 9], [4, 5, 6, 7, 8, 9, 1, 2, 3], [7, 8, 9, 1, 2, 3, 4, 5, 6], [2, 3, 1, 5, 6, 4, 8, 9, 7], [5, 6, 4, 8, 9, 7, 2, 3, 1],[8, 9, 7, 2, 3, 1, 5, 6, 4], [3, 1, 2, 6, 4, 5, 9, 7, 8], [6, 4, 5, 9, 7, 8, 3, 1, 2], [9, 7, 8, 3, 1, 2, 6, 4, 5]] a[c],a[d]= a[d],a[c] for i in range(len(a)): for j in range(len(a[i])): print(a[i][j], end=' ') print()`````````Output:>>> changeLines(3,6) 1 2 3 4 5 6 7 8 9 4 5 6 7 8 9 1 2 3 7 8 9 1 2 3 4 5 6 3 1 2 6 4 5 9 7 8 5 6 4 8 9 7 2 3 1 8 9 7 2 3 1 5 6 4 2 3 1 5 6 4 8 9 7 6 4 5 9 7 8 3 1 2 9 7 8 3 1 2 6 4 5 `````` Reply jefsummers Da Bishop Posts: 1,037 Threads: 1 Joined: May 2019 Reputation: Nov-19-2019, 09:51 PM It is doing what you are telling it to - swapping rows 3 and 6. Remember the arrays are zero based. What are you expecting? Reply Reldaing Silly Frenchman Posts: 22 Threads: 12 Joined: Nov 2019 Reputation: Nov-19-2019, 09:57 PM This was just an example of what i've made to switch lines. Now , I want to switch colums but I don't know how to do it, even if i tried... Reply newbieAuggie2019 Splitter Posts: 195 Threads: 21 Joined: Aug 2019 Reputation: Nov-20-2019, 07:39 AM (This post was last modified: Nov-20-2019, 07:39 AM by newbieAuggie2019.) (Nov-19-2019, 09:57 PM)Reldaing Wrote: This was just an example of what i've made to switch lines. Now , I want to switch colums but I don't know how to do it, even if i tried...Hi! Maybe you could do something like this (but probably there is a better way): ```def changeColumns(c,d): a = [[1, 2, 3, 4, 5, 6, 7, 8, 9], [4, 5, 6, 7, 8, 9, 1, 2, 3], [7, 8, 9, 1, 2, 3, 4, 5, 6], [2, 3, 1, 5, 6, 4, 8, 9, 7], [5, 6, 4, 8, 9, 7, 2, 3, 1],[8, 9, 7, 2, 3, 1, 5, 6, 4], [3, 1, 2, 6, 4, 5, 9, 7, 8], [6, 4, 5, 9, 7, 8, 3, 1, 2], [9, 7, 8, 3, 1, 2, 6, 4, 5]] print(f"This is array 'a' with original columns:\n") for i in range(len(a)): for j in range(len(a[i])): print(a[i][j], end=' ') print() print(f"\nThis is array 'a' with transposed columns:\n") for x in range(0,9): a[x][c],a[x][d]= a[x][d],a[x][c] for i in range(len(a)): for j in range(len(a[i])): print(a[i][j], end=' ') print() changeColumns(3,6)```with the self-explanatory output: ``````Output:This is array 'a' with original columns: 1 2 3 4 5 6 7 8 9 4 5 6 7 8 9 1 2 3 7 8 9 1 2 3 4 5 6 2 3 1 5 6 4 8 9 7 5 6 4 8 9 7 2 3 1 8 9 7 2 3 1 5 6 4 3 1 2 6 4 5 9 7 8 6 4 5 9 7 8 3 1 2 9 7 8 3 1 2 6 4 5 This is array 'a' with transposed columns: 1 2 3 7 5 6 4 8 9 4 5 6 1 8 9 7 2 3 7 8 9 4 2 3 1 5 6 2 3 1 8 6 4 5 9 7 5 6 4 2 9 7 8 3 1 8 9 7 5 3 1 2 6 4 3 1 2 9 4 5 6 7 8 6 4 5 3 7 8 9 1 2 9 7 8 6 1 2 3 4 5 >>>``````All the best, newbieAuggie2019 "That's been one of my mantras - focus and simplicity. Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it's worth it in the end because once you get there, you can move mountains." Steve Jobs Reply ThomasL Minister of Silly Walks Posts: 360 Threads: 5 Joined: Jun 2019 Reputation: Nov-20-2019, 12:47 PM I would suggest using numpy for this ```import numpy as np a = [[1, 2, 3, 4, 5, 6, 7, 8, 9], [4, 5, 6, 7, 8, 9, 1, 2, 3], [7, 8, 9, 1, 2, 3, 4, 5, 6], [2, 3, 1, 5, 6, 4, 8, 9, 7], [5, 6, 4, 8, 9, 7, 2, 3, 1], [8, 9, 7, 2, 3, 1, 5, 6, 4], [3, 1, 2, 6, 4, 5, 9, 7, 8], [6, 4, 5, 9, 7, 8, 3, 1, 2], [9, 7, 8, 3, 1, 2, 6, 4, 5]] sudoku = np.array(a) def show(arr): for row in arr: for num in row: print(num, end=" ") print() def swap_columns(arr, c1, c2): new = arr.copy() new[:,[c1, c2]] = new[:,[c2, c1]] return new def swap_rows(arr, r1, r2): new = arr.copy() new[[r1, r2],:] = new[[r2, r1],:] return new````show(sudoku)```````Output:1 2 3 4 5 6 7 8 9 4 5 6 7 8 9 1 2 3 7 8 9 1 2 3 4 5 6 2 3 1 5 6 4 8 9 7 5 6 4 8 9 7 2 3 1 8 9 7 2 3 1 5 6 4 3 1 2 6 4 5 9 7 8 6 4 5 9 7 8 3 1 2 9 7 8 3 1 2 6 4 5 `````````sudoku = swap_columns(sudoku, 0, 8) show(sudoku)`````````Output:9 2 3 4 5 6 7 8 1 3 5 6 7 8 9 1 2 4 6 8 9 1 2 3 4 5 7 7 3 1 5 6 4 8 9 2 1 6 4 8 9 7 2 3 5 4 9 7 2 3 1 5 6 8 8 1 2 6 4 5 9 7 3 2 4 5 9 7 8 3 1 6 5 7 8 3 1 2 6 4 9 `````````sudoku = swap_rows(sudoku, 0, 8) show(sudoku)`````````Output:5 7 8 3 1 2 6 4 9 3 5 6 7 8 9 1 2 4 6 8 9 1 2 3 4 5 7 7 3 1 5 6 4 8 9 2 1 6 4 8 9 7 2 3 5 4 9 7 2 3 1 5 6 8 8 1 2 6 4 5 9 7 3 2 4 5 9 7 8 3 1 6 9 2 3 4 5 6 7 8 1 ``````Of course, sudoku object type is now ``Output:``But you can convert it back to python list in case needed. ```sudoku = sudoku.tolist() print(type(sudoku))`````Output:``But i would build my whole sudoku game on numpy array. imho. Reply

 Possibly Related Threads… Thread Author Replies Views Last Post SaltStack: MySQL returner save less data into Database table columns xtc14 2 238 Jul-02-2021, 02:19 PM Last Post: xtc14 Fetch Oracle DB rows & print it in HTML file with table's col headers in table format tssr_2001 1 959 Sep-04-2020, 01:39 PM Last Post: ibreeden Mysql CREATE TABLE IF NOT EXISTS dynamic table name nisusavi 0 670 Apr-29-2020, 06:45 PM Last Post: nisusavi MYSQL how to assign a table for each user in my username table database? YoshikageKira 1 1,229 Dec-26-2019, 05:57 AM Last Post: buran Printing lists in a table, rows and columns randy_shooflay 6 3,266 Sep-05-2018, 07:59 PM Last Post: perfringo

Forum Jump:

### User Panel Messages

##### Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020