在替换字符串时简化嵌套循环和条件

时间:2016-11-14 07:03:16

标签: python python-2.7

我需要帮助来简化我的代码。 代码应检查是否只有两个字母要替换,然后打破for循环:

word = "hesitation"
for i in word:
    if i == 'a':
        new_word = word.replace(i, '@')
        for x in new_word:
            if x == 'o':
                new_word1 = new_word.replace(x, '0')
                for n in new_word1:
                    if n == 's':
                        new_word2 = new_word1.replace(n, '$')
                        print new_word2

2 个答案:

答案 0 :(得分:1)

您可以将replace与指定max replace的可选参数maxreplace一起使用。给定时,如果替换了第一个maxreplace次出现:

word = "hesitation"
a = word.replace('a', '@', 1)
b = a.replace('o', '0', 1)
c = b.replace('s', '$', 1)
# c = he$it@ti0n

答案 1 :(得分:0)

首先,您可以通过以下方式执行此操作,而不是嵌套循环:

word = "hesitation"
for i in word:
    if i == 'a':
        word = word.replace(i, '@')
for x in word:
    if x == 'o':
        word = word.replace(x, '0')
for n in word:
    if n == 's':
        word = word.replace(n, '$')
print word

以上代码在时间和空间方面都更有效。 希望这会有所帮助。