如何创建删除字符串中每个单词的前x个字母的命令?

时间:2018-09-25 01:25:32

标签: python string python-3.x

我需要删除字符串中每个单词的前几个字母。我知道通过使用类似

<table <?php echo" style='border: $border; padding: $cellpadding; background-color: $bgcolor;' "; ?> >

我可以删除该单词的前3个字母。 我现在需要对同一字符串中的许多单词执行此操作。 例如,如果我得到

st =  "testing"
st = st[3:]

我需要删除该单词的前2个字母(随机选择2个),但前提是该单词的长度> = 2。 此示例的输出应为:

"hello this is a test"

(请注意,“ is”已删除,因为它的长度为2个字母)

2 个答案:

答案 0 :(得分:2)

假定单词是不包含空格的任何序列:

  1. 将文本分割成单词
  2. 使用列表理解来修改符合条件的单词
  3. 加入结果

如果“单词”是指真正的英语单词(不包含标点符号等),请使用nltk.word_tokenize(st)代替st.split()

" ".join([(word[2:] if len(word) >= 2 else word) for word in st.split()])
#'llo is  a st'

答案 1 :(得分:0)

直接可以做到:

' '.join([s[2:] for s in st.split()])

但要保持字符长度少于两个:

' '.join([s[2:] or s for s in st.split()])

使用or是因为正确的是,'''a'将选择'a'