替换字符串中的char

时间:2015-01-10 15:48:55

标签: python string char

对于以下代码我试图删除每个单词的第一个字符,但我的代码只删除了最后一个单词的第一个字符。我该怎么做才能删除每个单词的所有首字符。

ejmin = "ej pj dj"
tfl = [0,]   
nw = ''

for i in range(len(ejmin)):
      if ejmin[i] == ' ':
         i = i + 1
         tfl.append(i)

for i in tfl:
      nw = ejmin.replace(ejmin[i], "")
print nw

3 个答案:

答案 0 :(得分:2)

您的代码存在许多问题,但是针对您的错误的关键问题是,每次通过循环时,您都会分配给nw,覆盖之前的所有分配。所以,当然,只有最后分配才重要!

只是修复它只会继续暴露更多层次的错误 - 令人惊讶的是你设法将这么多问题打包成这么一小段代码。例如,如果您分配到ejmin而不是nw,则会破坏所有进一步的索引。此外,ejmin.replace(ejmin[i]不会替换“位置i处的字符” - 它会替换等于该字符的每次出现。 & c - 这个代码现在几乎无法实现。

最好根据字符串不可变的核心思想从头开始重写(因此对字符串应用多个编辑很困难),而列表是可变的(所以编辑很好)。所以在开始时将你的字符串变成一个列表,编辑它,完成后将它变回一个字符串:

ejmin = "ej pj dj"
aslist = list(ejmin)
aslist[0] = ''
for i, c in enumerate(aslist):
    if c == ' ': aslist[i] = ''
nw = ''.join(aslist)

答案 1 :(得分:0)

ejmin = "ej pj dj"
a=ejmin.split() #split it by space 
for x in a:
    t=x[1:] #slicing it from first character to end of word
    print (t)

输出:

>>> 
j
j
j
>>> 

按空格字符拆分它们,并从第一个字符切片。

编辑:

ejmin = "ej pj dj"
a=ejmin.split()
for x in a:
    z=x[0]
    h=x+z
    print (h)

输出:

>>> 
eje
pjp
djd
>>> 

答案 2 :(得分:0)

  

我通过切片

尝试了
ejmin = "ej pj dj"
for word in ejmin.split():
    print word[1:],