替换为对的列表

时间:2015-10-14 18:45:35

标签: python string

我将编写一个函数,它将根据用户输入更改字符串中的某些字符。这看起来非常简单,因为我只是使用了替换功能,你可以看到:

myStr = "Python Program"
myStr = myStr.replace('o', '/')
print(myStr)

Pyth/n Pr/gram 

但我被告知这不是一个可以接受的解决方案。相反,我应该在不使用任何字符串方法的情况下做同样的事情。他们还强调它应该能够输入一对。所以应该可以采取:

pairs = [['P', '$'], ['o', '/']]
my_str = "Python Program"
my_str = substitute_pairs(my_str, pairs)
print(my_str)

$yth/n $r/gram

我想做某种for循环,但我真的不知道从哪里开始。

2 个答案:

答案 0 :(得分:1)

只需将pairs转换为dict,并在必要时迭代字符串替换:

def substitute_pairs(my_str, pairs):
  replacement = dict(pairs)
  return ''.join(replacement[c] if c in replacement else c for c in my_str)

pairs = [['P', '$'], ['o', '/']]
my_str = "Python Program"
my_str = substitute_pairs(my_str, pairs)
print(my_str)

答案 1 :(得分:0)

def sub_pairs(st,pairs):
    l,r = pairs
    new_string = []
    for ch in my_str:
        if ch == l[0]:
            ch = l[1]
        elif ch == r[0]:
            ch = r[1]
        new_string.append(ch)
    return ' '.join(new_string)

print(sub_pairs("Python Program",pairs))

        $ y t h / n   $ r / g r a m