2

我试图弄清楚如何删除字符串中单词的第一个字符。

我的程序读入一个字符串。

假设输入是:

这是演示

我的意图是删除字符串中每个单词的第一个字符,即 tid留下his s emo.

我试过了

  1. 使用 afor loop并遍历字符串
  2. 使用检查字符串中的空格isspace() function.
  3. 存储空格后遇到的字母的索引,i = char + 1, 其中 char 是空格的索引。
  4. 然后,尝试使用删除空白空间str_replaced = str[i:].

但它删除了除最后一个之外的整个字符串。

4

5 回答 5

5

列表推导是你的朋友。这是最基本的版本,只有一行

str = "this is demo";
print " ".join([x[1:] for x in str.split(" ")]);

output:   
his s emo
于 2012-06-19T18:01:29.763 回答
4

如果输入字符串不仅可以包含空格,还可以包含换行符或制表符,我会使用regex

In [1]: inp = '''Suppose we have a
   ...: multiline input...'''

In [2]: import re

In [3]: print re.sub(r'(?<=\b)\w', '', inp)
uppose e ave 
ultiline nput...
于 2012-06-19T06:39:48.423 回答
0

尝试(python 3.2)

import os

s = '''this is a test of the... What? What is going on now?
You guys are cu-rayzy!
Morons!'''

new_lines = []
lines=s.strip().split("\n")
for line in lines:
    new_words = []
    for word in line.strip().split(" "):
        new_words.append(word[1:])
    new_lines.append(' '.join(new_words))
new_statement = "\n".join(new_lines)

print (s)

print (new_statement)

这会处理新行,但不保留空格,并从每行的开头和结尾去除空格。

于 2012-06-19T17:53:03.547 回答
0

您可以简单地使用 python 理解

str = 'this is demo'
mstr = ' '.join([s[1:] for s in str.split(' ')])

那么mstr变量将包含这些值'his s emo'

于 2015-03-11T05:20:28.990 回答
0

这个方法有点长,但是很容易理解。flag 变量存储字符是否为空格。如果是,则必须删除下一个字母

s = "alpha beta charlie"
t = ""
flag = 0
for x in range(1,len(s)):
    if(flag==0):
         t+=s[x]
    else:
        flag = 0
    if(s[x]==" "):
        flag = 1
print(t)

output
lpha eta harlie
于 2021-09-24T19:11:30.160 回答