Phil wrote: > Thank you for reading this. > > This is my first attempt at using Tkinter and I've quickly run into a > problem. > > If e is a one dimensional list then all is OK and I can delete and insert > entries. The problem comes about when the list is made two dimensional, as > follows: > > from tkinter import * > > master = Tk() > > e = [None] * 6 , [None] * 2
In the above line you are creating a 2-tuple consisting of two lists: >>> [None]*6, [None]*2 ([None, None, None, None, None, None], [None, None]) What you want is a list of lists [ [None, None], [None, None], ... ] You can create such a list with >>> [[None] * 2 for _ in range(6)] [[None, None], [None, None], [None, None], [None, None], [None, None], [None, None]] > > for i in range(6): > for j in range(2): > e[i][j] = Entry(master, width=5) > e[i][j].grid(row=i, column=j) > e[i][j].insert(0,"6") > > mainloop( ) > > Traceback (most recent call last): > File "/home/pi/tkinter_example.py", line 50, in <module> > e[i][j] = Entry(master, width=5) > IndexError: tuple index out of range > > I can see that the problem occurs when i is greater than 1 which makes me > think that my method of attempting to create a two denominational array of > edit boxes is wrong. > > I've search for an example but haven't turned up anything. Where had I > failed? As shown above this has nothing to do with tkinter. Personally I would create the list of list dynamically entries = [] for row in range(6): entries_row = [] entries.append(entries_row) for column in range(2): entry = Entry(master, width=5) entry.grid(row=row, column=column) entry.insert(0,"6") entries_row.append(entry) or even use a dict with (row, column) keys: def make_entry(row, column): entry = Entry(master, width=5) entry.grid(row=row, column=column) entry.insert(0,"6") return entry master = Tk() entries = { (r, c): make_entry(r, c) for r in range(6) for c in range(2) } _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor