web-dev-qa-db-ja.com

python:「str」オブジェクトと「Tuple」オブジェクトを連結できません(機能するはずです!)

私はコードを持っています:

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、トレースバック(最後の最後の呼び出し):ファイル "C:\ Python26\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py"、312行目、RunScript exec codeObject in main .dict File "C:\ Documents and Settings\k.pawlowski\Desktop\atsserver.py"、line 165、in print "bug Tuple" + Tuple(temp.split( '、'))TypeError:'str'オブジェクトと 'Tuple'オブジェクトを連結できません

何を間違えたのかわかりません。 print Tuple( '1、2、3'.split('、 '))は正しく機能します。

10
CarolusPl
print Tuple(something)

printは引数に対して暗黙のstr()を実行するため、機能する可能性がありますが、

"" + ()

動作しません。それらを個別に印刷できるという事実は違いを生みません。文字列とタプルを連結することはできません。どちらか一方を変換する必要があります。つまり.

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

ただし、変換のためにstr()に依存すると、おそらく望ましい結果が得られません。たとえば、「、」を使用してセパレータを使用して、それらをきちんと結合します。

18

なぜそれがうまくいくと思いますか?

試してください:

print "bug Tuple " + str(Tuple(temp.split(', ')))
3
Maciej Kucharz

に変更します

print "bug Tuple ", Tuple(temp.split(', '))
2
Moe

なぜタプルを分割するのか、括弧を除いて準備ができている文字列があります。

print "bug Tuple (%s)" % '1, 2, 3'
0

Tuple()の必要はありません、次の作業、

outstr = str((w,t)) # (w,t) is my Tuple
0
samsamara