TypeError - 用于解决Type错误

时间:2014-01-29 15:25:45

标签: python

我试图在函数中找到一个错误:

def buggy_join(input, sep=","):
   return sep.join(input)

当我尝试使用以下方法调用该函数时:

buggy_join(range(6))

显示类型错误,表明找到了预期的String int。 我该如何解决呢。join函数仅适用于basestring类型??

input = list(itertools.chain(*enumerate("abc")))
buggy_join(input, ".")

即使对于上述呼叫,它也会导致相同的错误。

1 个答案:

答案 0 :(得分:0)

鉴于您已正确找出问题,这里有一个解决方案:

def not_buggy_join(input, sep=","):
    return sep.join(map(str, input))

来自the documentationmap(function, iterable)

  

function应用于iterable的每个项目,并返回结果列表。

在这种情况下,它会将所有内容转换为str。要使用您自己的示例:

>>> not_buggy_join(itertools.chain(*enumerate("abc")))
'0,a,1,b,2,c'