#python #string #tuples
#python #строка #кортежи
Вопрос:
Я знаю, что вопросы о кортеже в строку задавались раньше, но я не совсем понимаю, как они это объясняют, поэтому я пытаюсь получить объяснение на моем примере. Итак, мне нужно преобразовать точки кортежа в строку, чтобы заполнить ее в последней строке после «got data». Это сценарий:
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)
Итак, где точки записаны в последней строке, я хочу заполнить строку точек кортежа.
Я новичок в python, так что не ненавидьте меня: D
Комментарии:
1. Можете ли вы добавить вызов функции и вывод?
2. Я добавил это, сэр, но я не знаю, подходит ли вам результат
Ответ №1:
если данные каждого элемента в кортеже имеют string
тип, чем вы можете просто сделать:
" ".join(points)
где ваш код должен выглядеть примерно так:
QtGui.QMessageBox.information(self, "Click!", 'got data' " "join(points))
где, как будто есть int
float
типы or, чем, возможно, сопоставить str
или просто распечатать их один за другим.
Ответ №2:
Как насчет
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]))