2010-10-07 32 views
7

Bir tuple'ım var.Dize Tuple

tst = ([['name', u'bob-21'], ['name', u'john-28']], True) 

Ve ben bir dizeye dönüştürmek istediğiniz ..

print tst2 
"([['name', u'bob-21'], ['name', u'john-28']], True)" 

Bunu yapmak için iyi bir yol nedir

?

Teşekkürler!

cevap

14
tst2 = str(tst) 

Örn: Ben str() için Adem'in öneri gibi, ben aslında verilen yerine repr() yönünde eğilim olurdu

>>> tst = ([['name', u'bob-21'], ['name', u'john-28']], True) 
>>> tst2 = str(tst) 
>>> print tst2 
([['name', u'bob-21'], ['name', u'john-28']], True) 
>>> repr(tst2) 
'"([[\'name\', u\'bob-21\'], [\'name\', u\'john-28\']], True)"' 
+0

Teşekkürler Adam. Str kullanmayı düşündüm ama hiç işe yaramadı! – Dais

4

açıkça bir piton-sözdizimi benzeri temsil arıyoruz nesne. help(str) kararına göre, bir tuple için dize dönüşümü, ileride farklı sürümlerde tanımlanmış olabilir.

class str(basestring) 
| str(object) -> string 
| 
| Return a nice string representation of the object. 
| If the argument is a string, the return value is the same object. 
... 

help(repr) aksine:

repr(...) 
    repr(object) -> string 

    Return the canonical string representation of the object. 
    For most object types, eval(repr(object)) == object. 

bugünkü uygulama ve ortamda olsa da, orada ikisi arasında çok az fark olabilir, bu yüzden en iyi ihtiyacını tanımladığı kullanmak istiyorum - daha geri besleyebilir şey eval() veya kullanıcı tüketimi için bir şey.

>>> str(tst) 
"([['name', u'bob-21'], ['name', u'john-28']], True)" 
>>> repr(tst) 
"([['name', u'bob-21'], ['name', u'john-28']], True)"