Bonjour je suis confronté à un problème pour afficher des listes de différentes tables au tailles variables dans un widget Listbox

Donc j'ai crée dans une frame mon Listbox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
frame2 = Frame(frame1, bd = 4, height = 200, relief = GROOVE)
frame2.pack(side = TOP, padx = 10, pady = 10, expand = Y, fill = BOTH)
lBox = Listbox(frame2, bd = 4, width = 100)
vScroll = Scrollbar(frame2, command = lBox.yview)
lBox.config(yscrollcommand = vScroll.set)
vScroll.pack(side = RIGHT, expand = N, fill = Y, padx = 2, pady = 2)
lBox.pack(side = LEFT, padx = 15, pady = 15)
Je fais une extraction de ma base de données
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
def list_materiel():
    liste = gestionBD.liretable("MATERIEL")
    afficher(liste)
 
def liretable(table):
    " Retourne les enregistrements de la table "
    cnx = sqlite3.connect("BD_GESMAT.db3")
    c = cnx.cursor()
    liste = c.execute("SELECT * FROM {}".format(table))
    cnx.commit()
    return liste
Et j'affiche dans ma listbox: lBox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
def afficher(liste):
    lst = liste
    for r in lst:
        lBox.insert(END, " {} {} {} ".format(r[0], r[1], r[2]))
En fait je voudrais pouvoir réutiliser ma fonction afficher() quelque soit ma liste.
Par exemple, dans matériel il y a 3 colonnes, mais dans clients il y en a 6.
Peut on gérer avec insert et format le nombre à afficher et comment?