Python 用于解决类型错误的TypeError

Python 用于解决类型错误的TypeError,python,Python,我试图在函数中找到一个bug: def buggy_join(input, sep=","): return sep.join(input) 当我尝试使用以下命令调用函数时: buggy_join(range(6)) 它显示类型错误,说明找到了预期的字符串int。 我该如何解决它。join函数是否仅对basestring类型有效 input = list(itertools.chain(*enumerate("abc"))) buggy_join(input, ".") 即使在上述调

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

def buggy_join(input, sep=","):
   return sep.join(input)
当我尝试使用以下命令调用函数时:

buggy_join(range(6))
它显示类型错误,说明找到了预期的字符串int。 我该如何解决它。
join
函数是否仅对
basestring
类型有效

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

即使在上述调用中,它也会导致相同的错误。

鉴于您已经正确地解决了问题,下面是一个解决方案:

def not_buggy_join(input, sep=","):
    return sep.join(map(str, input))
从中,
map(函数,iterable)
will

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

在本例中,它将所有内容转换为
str
。要使用您自己的示例:

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

这个练习的全部目的不是让你自己去调试它吗?是的,我想我已经接近了,但是,我怎么能把它改成字符串呢?我想的是同样的答案,但是怀疑它的正确性谢谢。。!如果你想到了,为什么不先测试一下呢?