Python - 创建一个在字母之间添加“ - ”的函数

时间:2015-04-01 03:17:59

标签: python

我试图创建一个函数f(x),在每个字母之间添加"-"

例如:

f("James")

应输出为:

J-a-m-e-s-

如果您可以使用简单的python函数,我会喜欢它,因为我是编程新手。提前致谢。另外,请使用" for"功能,因为它是我试图学习的东西。

编辑:

是的,我确实想要"-"之后的"s"

6 个答案:

答案 0 :(得分:7)

我可以尝试这样:

>>> def f(n):
...     return '-'.join(n)
...
>>> f('james')
'j-a-m-e-s'
>>>

不确定您是否需要最后一个连字符。

编辑:

即使你想要后缀为'-',也可以这样做

def f(n):
   return '-'.join(n) + '-'

作为学习者,重要的是要了解"better to concat more than two strings in python"将使用str.join(iterable),而+运算符可以将一个字符串附加到另一个字符串。

请阅读以下帖子以进一步探索:

答案 1 :(得分:5)

  

另外,请使用“for”功能,因为这是我正在努力学习的内容

>>> def f(s):
        m = s[0]
        for i in s[1:]:
             m += '-' + i
        return m

>>> f("James")
'J-a-m-e-s'
    索引0处的
  • m = s[0]字符分配给变量m

  • for i in s[1:]:从第二个字符和

  • 进行迭代
  • m += '-' + i- + char附加到变量m

  • 最后返回变量m

  • 的值

如果你最后想要-那么你可以这样做。

>>> def f(s):
        m = ""
        for i in s:
            m +=  i + '-'
        return m

>>> f("James")
'J-a-m-e-s-'

答案 2 :(得分:2)

text_list = [c+"-" for c in text]
text_strung = "".join(text_list)

答案 3 :(得分:1)

鉴于您要求使用for和最终-的解决方案,只需迭代消息并将字符和' - '添加到中间列表,然后join它起来。这避免了使用字符串连接:

>>> def f(message)
        l = []
        for c in message:
            l.append(c)
            l.append('-')
        return "".join(l)
>>> print(f('James'))
J-a-m-e-s-

答案 4 :(得分:1)

作为一个函数,将一个字符串作为输入。

def dashify(input):
    output = ""
    for ch in input:
        output = output + ch + "-"
    return output

答案 5 :(得分:0)

对不起,我只需要进一步Alexander Ravikovich's answer

f = lambda text: "".join([c+"-" for c in text])

print(f('James'))  # J-a-m-e-s-

永远learn about list comprehension来说太早了。

"".join(a_list)不言自明:将列表元素与字符串粘合在一起(本例中为空字符串)。

lambda ......这只是一种在一行中定义功能的方法。想想

square = lambda x: x**2
square(2)  # returns 4
square(3)  # returns 9

Python很有趣,它不是{enter-a-boring-programming-language-here}。