Ответ 1
вы можете использовать что-то такое простое:
>>> l = [(1,2), (3,4)]
>>> str(l).strip('[]')
'(1, 2), (3, 4)'
.., который удобен, но не гарантированно работает правильно
Каков наиболее pythonic способ преобразования списка кортежей в строку?
У меня есть:
[(1,2), (3,4)]
и я хочу:
"(1,2), (3,4)"
Мое решение для этого было:
l=[(1,2),(3,4)]
s=""
for t in l:
s += "(%s,%s)," % t
s = s[:-1]
Есть ли более питонический способ сделать это?
вы можете использовать что-то такое простое:
>>> l = [(1,2), (3,4)]
>>> str(l).strip('[]')
'(1, 2), (3, 4)'
.., который удобен, но не гарантированно работает правильно
Вы можете попробовать что-то вроде этого (см. также на ideone.com):
myList = [(1,2),(3,4)]
print ",".join("(%s,%s)" % tup for tup in myList)
# (1,2),(3,4)
Как насчет:
>>> tups = [(1, 2), (3, 4)]
>>> ', '.join(map(str, tups))
'(1, 2), (3, 4)'
Как насчет
l = [(1, 2), (3, 4)]
print repr(l)[1:-1]
# (1, 2), (3, 4)
Я думаю, что это довольно аккуратно:
>>> l = [(1,2), (3,4)]
>>> "".join(str(l)).strip('[]')
'(1,2), (3,4)'
Попробуй, это сработало как прелесть для меня.
Еще три:)
l = [(1,2), (3,4)]
unicode(l)[1:-1]
# u'(1, 2), (3, 4)'
("%s, "*len(l) % tuple(l))[:-2]
# '(1, 2), (3, 4)'
", ".join(["%s"]*len(l)) % tuple(l)
# '(1, 2), (3, 4)'