Преобразование кортежа в строку

#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]))