嗨,正在处理一种莫尔斯电码的问题,用户会以这样的格式输入一个字符串
pattern = ['.', '.', '_', '.', '_', '.']
代码会打印出每个单词的结果,比如:
"dot-dot-dash-dot-dash-dot"
我试过这个:
def ss(pattern):
dotdash = ""
for s in pattern:
if s == ".":
dotdash+=("dot")
elif s == "_":
dotdash+=("dash")
x = "-".join(dotdash)
print(x)
ss(['.', '.', '_', '.', '_', '.'])
但这只是给我这样的输出:
d-o-t-d-o-t-d-a-s-h-d-o-t-d-a-s-h-d-o-t
正在寻找用连字符分隔这些点和破折号的解决方案--只是有点为难。我在想也许要分手——基于这些话——但只是不确定如何做到这一点。非常感谢您的帮助。你知道吗
好吧,我继续回答我自己的问题——呜呜。简单的解决方法——我把dotdash改成了一个列表,解决了我所有的问题。你知道吗
您可以先用
join
添加连字符,这将为您提供一个字符串,然后应用两个替换来获得最终的字符串:传递给
join()
函数的是一个字符串,因此它将遍历字符串中的每个字母,这就是您获得此输出的原因。您真正想做的是使用一个列表,以便join()
遍历列表中的每个单词:相关问题 更多 >
编程相关推荐