Uso de Lambda y tuplas para enviar a múltiples funciones: Python, Tkinter

column1 = [ ('H', 'Hydrogen', 'Atomic # = 1\nAtomic Weight =1.01\nState = Gas\nCategory = Alkali Metals'), ('Li', 'Lithium', 'Atomic # = 3\nAtomic Weight = 6.94\nState = Solid\nCategory = Alkali Metals'), ('Na', 'Sodium', 'Atomic # = 11\nAtomic Weight = 22.99\nState = Soild\nCategory = Alkali Metals'), ('K', 'Potassium', 'Atomic # = 19\nAtomic Weight = 39.10\nState = Solid\nCategory = Alkali Metals'), ('Rb', 'Rubidium', 'Atomic # = 37\nAtomic Weight = 85.47\nState = Solid\nCategory = Alkali Metals'), ('Cs', 'Cesium', 'Atomic # = 55\nAtomic Weight = 132.91\nState = Solid\nCategory = ALkali Metals'), ('Fr', 'Francium', 'Atomic # = 87\nAtomic Weight = 223.00\nState = Solid\nCategory = Alkali Metals')] #create all buttons with a loop r = 1 c = 0 for b in column1: tk.Button(self,text=b[0],width=5,height=2, bg="grey",command=lambda text=b[1]:self.name(text)).grid(row=r,column=c) r += 1 if r > 7: r = 1 c += 1 

 def name(self, text): self.topLabel.config(text=text) def info(self, text): self.infoLine.config(text=text) 

Quiero usar estas tuplas y enviar la segunda posición (el nombre del elemento) a la función name () (que actualmente tengo y funciona), y la tercera posición (toda la información del elemento) a la función info (), y Imprímalos ambos, pero estarán en diferentes lugares. No importa lo que intente, parece que no puedo hacerlo. ¿Puedes enviar varias cosas usando tuplas a diferentes funciones?

En la línea en la que creas tu botón, puedes lograr esto con un truco lambda (estúpido):

 tk.Button(self,text=b[0],width=5,height=2, bg="grey", command=lambda text=b:[self.name(text[1]), self.info(text[2])] ).grid(row=r,column=c) 

o defina una función separada que llame a ambos:

 tk.Button(self,text=b[0],width=5,height=2, bg="grey", command=lambda text=b:self.call_both(text)).grid(row=r,column=c) def call_both(self, line): self.name(line[1]) self.info(line[2])