我试图创建一个函数f(x)
,在每个字母之间添加"-"
:
例如:
f("James")
应输出为:
J-a-m-e-s-
如果您可以使用简单的python函数,我会喜欢它,因为我是编程新手。提前致谢。另外,请使用" for"功能,因为它是我试图学习的东西。
编辑:
是的,我确实想要"-"
之后的"s"
。
答案 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'
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}。