try, except 块将列表中的每个点连接到某个组合的字符串变量

try, except block concatenate each spot in a list to some combined string variable

link_strings(xs):考虑一个值序列 xs。它可以包含任何 python 值,但我们只对字符串感兴趣。不使用 type() 函数,只需尝试将列表中的每个点连接到某种 combined_string 变量,并弄清楚如何沿途传递每个失败的(非字符串)连接。 • 参数:xs :: 值列表。 • Return 值:一个字符串,作为xs 中所有字符串的串联。 • 要求:您必须在您的解决方案中使用try-except 块!不要使用 type()。

    def link_strings(xs):
        string1 = ''
        try:
            for i in range(len(xs)):
                 string1 += xs[i]
            return string1
        except:

我遇到的问题是实际上要在我的 except 块中放入什么,以便如果有任何其他不是字符串的值可以传递它们并仅组合字符串值,如果没有则return 一个空字符串。

怎么样:

def link_strings(xs):
        string1 = ''
        for i in range(len(xs)):
            try:
                string1 += str(xs[i])
            except:
                print "not a string"
        return string1

请注意,这会愉快地将浮点数和整数转换为字符串。 (来源:SiHa)