2017-09-02 12 views
0

からいくつかの単語とスペースを削除し、私はリストが見えているようこのPythonは文字列

['Drexel University,\r\n     Antoinette Westphal COMAD,\r\n     Animation & Visual Effects,\r\n     Undergraduate Program'] 

私は「ドレクセル大学」である大学名を、削除したい、などのスペースが\ rを\ n個(含まその後の空白)を他の単語の前に置きます。私は正規表現は良いアイデアだろうと思う。しかし、私は正規表現でいくつかの単語を除外する方法を知らない。

まあ、私はすでに解決策を持っています。しかし、誰かが正規表現のバージョンを提供することができれば、私は感謝するでしょう。あなたは各単語間のスペースを文字列としてそれをしたい場合は

>>> l = ['Drexel University,\r\n     Antoinette Westphal COMAD,\r\n     Animation & Visual Effects,\r\n     Undergraduate Program'] 
>>> l = l[0].split()[2:] 
>>> l 
['Antoinette', 'Westphal', 'COMAD,', 'Animation', '&', 'Visual', 'Effects,', 'Undergraduate', 'Program'] 

あなたにl = ' '.join(l)

+0

だから、1つの文字列を持つ単一要素のリストですか? –

+0

[Pythonを使用して文字列から文字を削除するにはどうすればいいですか?](https://stackoverflow.com/questions/3559559/how-to-delete-a-character-from-a-string-using-python) –

+0

@COLDSPEEDはい、文字列またはリストが主な問題ではないと思います。私がそこにリストを保持する理由は、それを分割するもっと便利な方法があるかもしれないと思うからです。 – user8314628

答えて

0

これを他の言葉のために定期的に実行する予定がある場合。私はそれを少し一般化するだろう。あなたのデータから

:変数へ

l = ['Drexel University,\r\n     Antoinette Westphal COMAD,\r\n     Animation & Visual Effects,\r\n     Undergraduate Program'] 

割り当て文字列:

l = l[0] 

あなたが無視したいキーのリストを定義します。

ignore_keys = ["Drexel University,","\n","\r"," "] 

ループ無視するキーを越えて空白に置き換えてください

0123リストとして

- 文字列としてl.split(",") - l

結果:次に

あなたは結果が表現する方法に応じて

print(l.split(",")) 
['Antoinette Westphal COMAD', 'Animation & Visual Effects', 'Undergraduate Program'] 

print(l) 
'Antoinette Westphal COMAD,Animation & Visual Effects,Undergraduate Program' 
0

あなたは空白で分割して、次のようにリストをスライスする.split()を使用することができます1つのテキストのリストを文字列のリストにすることができます。

l = ['Drexel University,\r\n     Antoinette Westphal COMAD,\r\n     Animation & Visual Effects,\r\n     Undergraduate Program'] 

text = l[0] 
lines = [line.strip().strip(',') for line in text.splitlines()] 

ここでは、リストの最初の項目を抽出しました。 次に、最初の項目を行に分割し、行ごとにstripを使用してスペースと "、"を削除します。

結果は次のとおりです。

['Drexel University', 'Antoinette Westphal COMAD', 
'Animation & Visual Effects', 'Undergraduate Program'] 

リストの最初の要素を削除するには、あなたが行うことができます:

lines.pop(0) 

EDIT:正規表現

は、正規表現を使用して、分割することができますあなたのテキストは次のとおりです:

import re 

text = l[0] 
lines = re.split(r',\s+', text) 
+0

それは私が望む方法ではないようです。単語を単語ごとに分割すると、フレーズ構造が壊れてしまいます。 Antoinette Westphal COMAD、アニメーション&ビジュアルエフェクト、... – user8314628

+0

ああ、私はそれを取得します。規律を文字列にしましょう。次に、discipline [0] .split( '、')]のdの[d.strip()は動作します。 – user8314628

0

を使用することができます。

+0

ニース、私はちょうど同様の方法で解決策を得ました。 – user8314628