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)-'
的字符串,这是错误的。我已经在上面显示了我的代码,需要帮助解决这个问题。
答案 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