返回带有sep的字符串形式的列表

2024-04-25 12:24:02 发布

您现在位置:Python中文网/ 问答频道 /正文

def buggy_join(input, sep=","):
    list=input
    print list
    str="".join(str(x) for x in list)
    print str
    str=sep.join(str)
    return str
buggy_join(range(6))

这是我的代码,我应该在这里得到结果"0,1,2,3,4,5"。我的代码哪里出错了。请告诉我。你知道吗


Tags: 代码inforinputreturndefrangesep
1条回答
网友
1楼 · 发布于 2024-04-25 12:24:02

您使用空字符串分隔符连接列表,然后使用逗号连接结果字符串。你知道吗

只需在列表中以逗号开头:

def working_join(input, sep=","):
    result = sep.join([str(v) for v in input])
    return result

str.join()与字符串输入一起使用会在所有单个字符之间放置分隔符:

>>> ','.join('Hello world!')
'H,e,l,l,o, ,w,o,r,l,d,!'

那是因为字符串也是一个序列。这对于计数到9的范围是很好的,但是对于10及以上的范围,您应该在10字符之间加一个逗号。你知道吗

尽量不要使用像strlist这样的名称;它们是内置类型,通过在自己的代码中对其他对象使用它们,最终会屏蔽内置类型,并且在需要时无法使用它们。因此,input也是一个内置函数,但是在这个函数中不太可能需要它。你知道吗

因为您尝试使用str作为内置类型(将input中的单个元素转换为字符串)作为本地名称,所以函数在函数中抛出一个NameError;Python,将str标记为本地,而不是内置对象。这将导致生成器表达式中的str引用函数中的str变量,整个过程将崩溃,因为尚未为该名称分配任何内容。你知道吗

相关问题 更多 >

    热门问题