通过索引替换字符串中的单词而不使用"字符串替换功能" -蟒蛇

时间:2018-05-17 17:54:48

标签: python string indexing replace

有没有办法在不使用"字符串替换功能的情况下替换字符串中的单词,"例如,string.replace(字符串,单词,替换)。

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>Contact Page</title>
  <script language="Javascript" type="text/javascript">
    <!--- Hide Script from Old Browsers 

    adImages1 = new Array("http://www.rmar.in/images/service/web3.png", "http://www.triadsearchmarketing.com/wp-content/uploads/2015/06/web-design-banner.jpg", "http://www.rmar.in/images/service/web3.png")
    adImages2 = new Array("http://www.triadsearchmarketing.com/wp-content/uploads/2015/06/web-design-banner.jpg", "http://www.rmar.in/images/service/web3.png")
    thisAd1 = 0
    thisAd2 = 0
    imgCt1 = adImages1.length
    imgCt2 = adImages2.length

    function rotate() {
      if (document.images) {
        thisAd1++
        if (thisAd1 == imgCt1) {
          thisAd1 = 0
        }
        document.adBanner1.src = adImages1[thisAd1]
        thisAd2++
        if (thisAd2 == imgCt2) {
          thisAd2 = 0
        }
        document.adBanner2.src = adImages2[thisAd2]

        setTimeout("rotate()", 3 * 1000)

      }
    }

    // End hiding script from old browsers -->
  </script>
</head>

<body bgcolor="#FFFFFF" onload="rotate()">
  <center>
    <img src="http://www.triadsearchmarketing.com/wp-content/uploads/2015/06/web-design-banner.jpg" width="400" height="75" name="adBanner1" vspace="10" alt="Ad Banner 1" /> <br/>
    <img src="http://www.rmar.in/images/service/web3.png" width="400" height="75" name="adBanner2" vspace="10" alt="Ad Banner 2" />
  </center>
</body>
<html>

这里冷酷的词语被替换为真棒。

这是我在MATLAB中的作业,我试图在python中做。在MATLAB中执行此操作时,我们不允许使用strrep()。

在MATLAB中,我可以使用strfind来查找索引并从那里开始工作。但是,我注意到列表和字符串之间存在很大差异。字符串在python中是不可变的,并且可能必须导入一些模块才能将其更改为不同的数据类型,因此我可以像使用字符串替换函数一样使用它。

4 个答案:

答案 0 :(得分:0)

只是为了好玩:)

st = 'This snowy weather is so cold .'.split()
given_word = 'awesome'
for i, word in enumerate(st):
    if word == 'cold':
        st.pop(i)                                                                                                                                                                 
        st[i - 1] = given_word
        break # break if we found first word

print(' '.join(st))

答案 1 :(得分:0)

这是另一个可能更接近您使用MATLAB描述的解决方案的答案:

st = 'This snow weather is so cold.'
given_word = 'awesome'
word_to_replace = 'cold'
n = len(word_to_replace)

index_of_word_to_replace = st.find(word_to_replace)

print st[:index_of_word_to_replace]+given_word+st[index_of_word_to_replace+n:]

答案 2 :(得分:0)

您可以将字符串转换为列表对象,找到要替换的单词的索引,然后替换该单词。

s3:GetObject

答案 3 :(得分:0)

使用Regex和列表理解。

import re
def strReplace(sentence, toReplace, toReplaceWith):
    return " ".join([re.sub(toReplace, toReplaceWith, i) if re.search(toReplace, i) else i for i in sentence.split()])

print(strReplace('This snowy weather is so cold.', 'cold', 'awesome'))

<强>输出:

This snowy weather is so awesome.