Преобразовать кортеж в строку
Я знаю, что ранее задавались вопросы о кортежах, но я не понимаю, как они это объясняют, поэтому я пытаюсь получить объяснение на своем примере. Поэтому мне нужно преобразовать точки кортежа в строку, чтобы заполнить ее в последней строке после "полученных данных". Это скрипт:
def on_pick(self, event):
print('On Pick!')
thisline = event.artist
xdata = thisline.get_xdata()
ydata = thisline.get_ydata()
ind = event.ind
print(ind)
points = tuple(zip(xdata[ind], ydata[ind]))
print('onpick points:', points)
QtGui.QMessageBox.information(self, "Click!", 'got data' + points)
вызов
self.canvas.mpl_connect('pick_event', self.on_pick)
и результат должен быть таким, как я уже описал:
QtGui.QMessageBox.information(self, "Click!", 'got data' + points)
Итак, где точки написаны в последней строке, я хочу заполнить строку точек кортежа. Я новичок в питоне, так что не ненавидь меня:D
2 ответа
Решение
Если данные каждого элемента в кортеже string
типа, чем вы можете просто сделать:
" ".join(points)
где ваш код должен выглядеть примерно так:
QtGui.QMessageBox.information(self, "Click!", 'got data' + " "join(points))
где как будто есть int
или же float
типы, чем, возможно, карта str
или просто напечатать их по одному.
Как насчет
myString = "got data %s, %s" % (str(xdata),str(ydata))
QtGui.QMessageBox.information(self, "Click!", myString)
или если xdata является кортежем
myString = "got data %s, %s" % (str(xdata[0]),str(xdata[1]))
a = (1,2)
b = "asdf %s %s" % (str(a[0]),str(a[1]))