Python - 将元组列表转换为字符串

时间:2010-07-20 17:28:06

标签: python list string-formatting tuples

将元组列表转换为字符串的最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方法吗?

7 个答案:

答案 0 :(得分:32)

您可以尝试这样的事情(see also on ideone.com):

myList = [(1,2),(3,4)]
print ",".join("(%s,%s)" % tup for tup in myList)
# (1,2),(3,4)

答案 1 :(得分:23)

你可能想要使用如下这样简单的东西:

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

..这很方便,但不能保证正常工作

答案 2 :(得分:17)

怎么样:

>>> tups = [(1, 2), (3, 4)]
>>> ', '.join(map(str, tups))
'(1, 2), (3, 4)'

答案 3 :(得分:1)

怎么样

l = [(1, 2), (3, 4)]
print repr(l)[1:-1]
# (1, 2), (3, 4)

答案 4 :(得分:1)

我认为这非常简洁:

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

尝试一下,它对我来说就像一个魅力。

答案 5 :(得分:1)

最pythonic的解决方案是

tuples = [(1, 2), (3, 4)]

tuple_strings = ['(%s, %s)' % tuple for tuple in tuples]

result = ', '.join(tuple_strings)

答案 6 :(得分:0)

另外三个:)

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)'