2017-12-23 14 views
-3

私はファイルを読み込み、変数 "input_kws"を割り当てています。 「input_kws」の特定の文字列に基づいたリストのサブセット

input_kws = open('words.txt','r') 

内容は以下のとおりです。

baseball 
basketball 
football 
tennis 
boxing 
volleyball 

私は単に「ボール」を含む単語だけを含む新しいリストを作成したいです。

+2

あなたはこれまでに何をしましたか?あなたのアプローチと正確にあなたが立ち往生している場所を示してください。 – lkriener

答えて

3

「ボール」が各文字列に含まれているかどうかを確認してください。

input_kws= 'baseball basketball football tennis'.split() 

ball_sports = [word for word in input_kws if 'ball' in word] 
>>>['baseball', 'basketball', 'football'] 

また、あなたは同じ結果

f = filter(lambda x: 'ball' in x, input_kws) #Returns a generator 
ball_sports = list(f) 

を達成するためにfilterを使用でき、発電機はあなたのものでない場合は、ループ

ball_sports = [] 
for sport in input_kws: 
    if 'ball' in sport: 
     ball_sports.append(sport) 

これでそれを常に行うことができますあなたのリストにサブストリング「ボール」を持つ他のスポーツがあった場合は失敗します。例

input_kws= 'baseball basketball football tennis balloon'.split() 
f = filter(lambda x: 'ball' in x, input_kws) #Returns a generator 
ball_sports = list(f) 
>>>['baseball', 'basketball', 'football','balloon'] 
0

使用も、文字列でボールを見つけるための正規表現を使用することができます

import re 

for line in open(r"words.txt","r"): 
    if re.findall(r"ball",line) ==["ball"]: 
     print(line) 

baseball 

basketball 

football 

volleyball 
+0

これは完全に機能します。皆さん、ありがとうございました。 – nia4life

関連する問題