python - 用条件替换字符串会产生奇怪的结果

时间:2017-05-14 02:48:36

标签: python string replace

如果字母与字符串中的下一个字母相同,我写了一个替换字母的函数:

word = 'abcdeefghiijkl'

def replace_letter(word):
    for i in range(len(word)-1):
        if word[i] == word[i+1]:
            word = word.replace(word[i],'7')
    return word

replace_letter(word)

这应该给我'abcd7efgh7ijkl',但我得到'abcd77fgh77jkl'。一旦字母与下一个字母相同,则两个字母都替换为'7'

为什么?

2 个答案:

答案 0 :(得分:4)

您应该使用:

word = word.replace(word[i],'7', 1)

表示您想要替换一个字符。致电replace()而不指明您希望进行多少替换,将"e"替换任何出现的word[i]字符{"7"}。

答案 1 :(得分:0)

上面的答案有一个小错误 例如: 当你的话=' ebcdeefghiijkl' replace_letter(word)的结果将是' 7abcdeefgh7ijkl' 你可以试试这个:

<div id="wrapper">
<header>

    <div class="header">

    .logo
    .searchbar
    .phone numbers insert

    </div> <!--closes header div-->

</header>
<div class="navband">
<nav>
    <ul class="nav">
        <li><a href="#">Engineered Integrated Solutions</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Clients</a></li>
        <li><a href="#">Contact</a></li>
        <li><a href="#">Employment</a></li>
    </ul>
</nav>

</div> <!--closes navband div-->
<div class="content">

    <h2>Header</h2>
    <p>Content Here</p>

</div> <!--closes content div-->