2017-02-25 8 views
-1

私は、特定の変数に応じて、文字列の各単語の最初と最後の文字を削除するPythonでコードを書くことになっています。これまでのところ、私はいくつかの方法を試してみたと私は毎回若干の誤差が出る:文字列の各単語の最初と最後の文字を削除する

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

これは私が作ってみたものですが、残念ながらそれは私が見つけることができませんTypeError例外を私に残します。

+0

ようこそStackOverflow。 [よくある質問](http://stackoverflow.com/tour)、[How to Ask](http://stackoverflow.com/help/how-to-ask)、および[How to create a Minimal、完全で検証可能な例](http://stackoverflow.com/help/mcve) より良い質問があります。この場合、2行目に適切な字下げを使用し、取得したエラーメッセージの完全な入力例とトレースバックを与えます。 –

答えて

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' 

を使用注記:境界条件は

0

この例とみなされていないあなたに

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

0

を助けるかもしれないので、私は、あなたがしたいと思います文字列の各単語の最初と最後の文字を、たとえば文のように削除します。 これはどのように出発点のために:

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 

出力:hereを説明するように

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

s.translate(None, string.punctuation)は、文字列からすべての句読点を削除します。 .split()は、デフォルトでスペースに文字列を分割します。最後に、個々の単語に対応する分割文字列のすべての文字列を繰り返し、最初と最後の文字をスライスします。

これを出発点として使用し、さらに複雑な文字列がある場合はこれを適用してください。

関連する問題