我正在尝试编写一个函数来在python中混合字符串,但最后我陷入困境。所以对于这个例子,我有2个单词,mix和pod。我想创建一个返回的函数:pox mid
我的代码只返回pox mix
代码:
def mix_up(a, b):
if len(a and b)>1:
b=str.replace(b,b[2],a[2:3])
a=str.replace(a,a[2],b[2])
print b,"",a
return
mix_up('mix','pod')
我想为多个单词做这个。另一个例子:
如果我用狗,晚餐
输出应该返回dig donner
谢谢!
答案 0 :(得分:1)
def mix_up(first, second):
new_first = second[:2] + first[2:]
new_second = first[:2] + second[2:]
return " ".join((new_first, new_second))
assert mix_up('mix','pod') == 'pox mid'
assert mix_up('dog','dinner') == 'dig donner'
答案 1 :(得分:0)
如果你只想把第二个单词放在第一个单词之前:
def mix_up(a,b):
return " ".join([b,a]) # Should return pod mix
让你针对pox mix
建议你可能想要:
1)用x替换单词b
的最后一个字符
2)将b放在a。
在这种情况下,函数将是:
def mix_up(a,b):
b = b.replace(b[len(b)-1], 'x') # 'x' could be any other character
return " ".join([b,a]) # Should return pox mix
您可以简单地将b与a交换,以便更改单词的位置。
如果您不想要metween中的空格:
return "".join([b,a])
<强>更新强>
“交换”b和a之间的第二个字母,我只需更正您的功能,如下所示:
def mix_up(a, b):
if len(a and b)>1:
temp = b[1] # Store it in a temp
b=str.replace(b,b[2],a[2:3])
a=str.replace(a,a[2],b[2])
print (b,"",a)
return
mix_up('mix','pod')
您唯一的问题是,在您更换b
后,您使用新 b
来选择第二个字母并替换为a
。