2015-02-02 2 views
0

Скажем, у меня есть набор какЛегко сериализовать/ToString множество кортежей в Python

s=([1,2],[2,3]) 

Я хотел сделать что-то вроде «\ п» .join (ов), а затем получаете TypeException о

expecting a string and getting a tuple 
+0

ошибка очень ясно 'J oin', ожидая строки и получив кортеж – Kasramvd

+0

Я это знаю. Я надеялся, что, возможно, был какой-то синтаксис синтаксиса списка сравнения против итерации по всем элементам цикла for – atxdba

+1

, так что вы попробовали все, чтобы решить вашу проблему? все, что вам нужно, это поиск о преобразовании 'set' в строку или pass set to' join' – Kasramvd

ответ

2
"\n".join(map(str,s)) 

будет отбрасывать каждый элемент в виде строки первого

или

"\n".join([str(x) for x in s]) 

если вы предпочитаете списковые

1

Что вы хотите сериализовать объекты для? Если они будут использоваться Python, можно использовать рассол -

import pickle 
s = pickle.dumps(([1,2],[2,3])) 

Если не Python ,, то различия между кортежами и списками не важно, и вы можете просто использовать JSON:

import json 
s = json.dumps(...) 

Если вы хотите его как строку, которая может быть интерпретирована как выражение в Python, с помощью humna, Eval в Python, или лучше ast.literal_eval, вы можете просто использовать Repr своего выражения:

s = repr(([1,2],[2,3])) 
Смежные вопросы