给定元组列表,通过连接返回一个字符串

时间:2016-04-30 18:56:29

标签: python string list function

def display(xs):
    string1 = ''
    for i in range(len(xs)):
        string1+=str(xs[i])+'-'
    return string1

将元组列表设为xs = [(2,3),(4,4),(5,5),(6,6)]。将此列表作为字符串返回,方法是将其添加为短划线' - '。

所以我想返回一个类似于'(2,3)-(4,4)-(5,5)-(6,6)'的字符串。

我的代码所做的是它正确地添加了破折号,但我得到的错误是在第一个值中没有读取,并且最后还有一个额外的破折号。

我的代码返回一个看起来像'(4,4)-(5,5)-(6,6)-'的字符串,这是错误的。我已经在上面显示了我的代码,需要帮助解决这个问题。

1 个答案:

答案 0 :(得分:4)

你走在正确的轨道上。但是,在这种情况下,最好使用.join()不将-附加到列表中的最后一个元组:

>>> def display(xs):
...    return "-".join(map(str, xs))

>>> display([(2,3),(4,4),(5,5),(6,6)])
'(2, 3)-(4, 4)-(5, 5)-(6, 6)'

如果你不想要元组项之间的空格,你必须自己格式化它们:

>>> def display(xs):
...     return "-".join("({},{})".format(*t) for t in xs)

>>> display([(2,3),(4,4),(5,5),(6,6)])
'(2,3)-(4,4)-(5,5)-(6,6)'

以下是您的功能的修改版本:

>>> def display(xs):
...     string1 = ""
...     for i in range(len(xs)):
...         string1 += str(xs[i])
...         if i != len(xs) - 1:
...             string1 += "-"
...     return string1