Like any other widget, you simply need to keep a reference to it. For example, you could append each widget to a list, then iterate over the list to remove the widgets.
Let's take a look at this code:
def update1():
try:
openArtist.pack_forget()
artistLab.pack_forget()
labels[0].destroy()
print labels
getScrobbledTracksArtist()
except NameError:
getScrobbledTracksArtist()
you are only ever deleting the first label in the list, and then you are failing to remove it from the list. What you need to do instead is to loop over the list, destroying each widget. Then you can reinitialize the list:
for label in labels:
label.destroy()
labels = []
However, you have another problem in that it appears that labels
may be a local variable. You will need to declare it as global so that the two different functions will be able to access and modify the list.
None of this is related to tkinter, this is simply how all python objects work.