Python - преобразуйте список кортежей для строкового представления

Который является большей частью 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]

Существует ли больше pythonic способа сделать это?

17
задан SilentGhost 20 July 2010 в 17:31
поделиться

5 ответов

вы можете использовать что-то простое, например:

>>> l = [(1,2), (3,4)]
>>> str(l).strip('[]')
'(1, 2), (3, 4)'

... что удобно, но не гарантирует правильной работы

28
ответ дан 30 November 2019 в 10:01
поделиться

Вы можете попробовать что-то вроде этого ( см. Также на ideone.com ):

myList = [(1,2),(3,4)]
print ",".join("(%s,%s)" % tup for tup in myList)
# (1,2),(3,4)
32
ответ дан 30 November 2019 в 10:01
поделиться

Как насчет:

>>> tups = [(1, 2), (3, 4)]
>>> ', '.join(map(str, tups))
'(1, 2), (3, 4)'
17
ответ дан 30 November 2019 в 10:01
поделиться

Как насчет

l = [(1, 2), (3, 4)]
print repr(l)[1:-1]
# (1, 2), (3, 4)
1
ответ дан 30 November 2019 в 10:01
поделиться

Еще три :)

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)'
0
ответ дан 30 November 2019 в 10:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: