python: не может объединять объекты 'str' и 'tuple' (это должно работать!) - PullRequest
9 голосов
/ 31 августа 2010

У меня есть код:

print "bug " + data[str.find(data,'%')+2:-1]
temp = data[str.find(data,'%')+2:-1]
time.sleep(1)
print "bug tuple " + tuple(temp.split(', '))

И после этого мое приложение отображает:

ошибка 1, 2, 3 Трассировка (последний вызов был последним): файл "C: \ Python26 \ Lib \ site-packages \ pythonwin \ pywin \ framework \ scriptutils.py", строка 312, в исполняемом коде RunScript exOject в main . dict Файл "C: \ Documents and Settings \ k.pawlowski \ Desktop \ atsserver.py", строка 165, в печати "ошибка кортежа" + кортеж (temp.split (',')) TypeError: не может объединить объекты 'str' и 'tuple'

Я не знаю, что я делаю неправильно. print tuple ('1, 2, 3'.split (', ')) работает правильно.

Ответы [ 5 ]

16 голосов
/ 31 августа 2010
print tuple(something)

может работать, потому что print будет выполнять неявную str () для аргумента, но и выражение будет похоже на

"" + ()

не работает. Тот факт, что вы можете печатать их по отдельности, не имеет значения, вы не можете объединить строку и кортеж, вы должны преобразовать любой из них. * Т.е. 1005 *

print "foo" + str(tuple("bar"))

Однако, в зависимости от str () для преобразования, вероятно, не даст желаемых результатов. Соедините их аккуратно, используя разделитель, используя «,». Например, объедините

3 голосов
/ 31 августа 2010

Почему вы думаете, что это должно работать?

попробовать:

print "bug tuple " + str(tuple(temp.split(', ')))
2 голосов
/ 31 августа 2010

Измените его на

print "bug tuple ", tuple(temp.split(', '))
0 голосов
/ 23 мая 2016

Нет необходимости tuple(), следующие работы,

outstr = str((w,t)) # (w,t) is my tuple
0 голосов
/ 31 августа 2010

Зачем разбивать, разбивая, у вас есть строка для одного готового, кроме парантеза, почему бы и нет:

print "bug tuple (%s)" % '1, 2, 3'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...