删除字符串每个单词中的第一个和最后一个字母

时间:2017-02-25 23:33:43

标签: python python-2.7

我应该用Python编写代码来删除字符串每个单词中的第一个和最后一个字母,具体取决于某个变量。到目前为止,我已经尝试了几种方法,每次都会出现一些错误:

def trimWords(s, fromStart=1, fromEnd = 1):
    return [word - word[:fromStart] - word[-fromEnd:] for word in s if word > fromStart + fromEnd]

这是我提出的,但不幸的是,它给我留下了一个我找不到的TypeError。

3 个答案:

答案 0 :(得分:1)

将数组作为数组访问并使用slicing

def trim_word(word, from_start=0, from_end=0):
    return word[from_start:len(word) - from_end]

print(trim_word('hello')) # 'hello'
print(trim_word('hello',1,1)) # 'ell'

注意:不考虑边界条件

答案 1 :(得分:1)

所以我想你想删除一个字符串的每个单词中的第一个和最后一个字母,比如句子。 这个起点如何:

import string
s = "The quick brown fox, and so on."
s = [a[1:-1] for a in s.translate(None, string.punctuation).split()]
print s

输出:

['h', 'uic', 'row', 'o', 'n', '', '']

s.translate(None, string.punctuation)会删除字符串中的所有标点符号,如here所述。然后.split()将字符串拆分,默认情况下为空格。最后,我们迭代分割字符串中与单个单词对应的所有字符串,并切掉第一个和最后一个字符。

使用此作为起点,如果您有更复杂的字符串需要进一步考虑,请对其进行调整。

答案 2 :(得分:0)

此示例可能会对您有所帮助

s = ":dfa:sif:e" print s[1:]