2016-05-01 15 views
1

だから私はリストリスト内のリストに一致する文字列を見つける方法?

myList = [["hello my name is john"],["hey my name is john"],["hello my name is smith"]] 

を持っていると私は、ユーザーがhelloを検索できるようにすると出力が

"hello my name is john" 
"hey my name is john" 
すべき

"hello my name is john" 
"hello my name is smith" 

または検索johnして出力します

現時点でのコードには出力がありません

def pattern(): 
    search = input("Search: ") 
    match = [word for word in myList if search in word] 
    for confirmedMatch in match: 
     print(confirmedMatch) 

pattern() 

私は間違っていますか?

答えて

4

問題はあなたのリストにあります。

あなたのリストは、リストのリストではなく文字列のリストである場合に機能します。あなたの最初のソリューションを考える

myList = ["hello my name is john","hey my name is john","hello my name is smith"]

「ハロー」は、リスト内の要素であるかどうかをチェックします。文字列の部分文字列であるかどうかをチェックします。

あなたは、むしろそれはリストのリストで作業希望の場合、ライン

match = [word for word in myList if search in word]

match = [word for word in myList if search in word[0]]なり

+0

(内側のリストは一つだけの要素を持っていると仮定して)うん、私はそれリスト作ることを実現リストのほうがもっと難しいですが、それは私が必要とすることですが、助けてくれてありがとうございます+1 – oneman

+0

@LiamEmeryここの解決法は正しいです。最後のコードセクションを見てください。それがうまくいくならば、これを答えとしてマークすることをお勧めします。 –

+0

内側のリストに複数の要素がある場合、 'word [0]の検索が'あれば 'eで検索して' eで検索する ''または ''すべて検索する(eで検索する)あなたが達成したいことに応じて。 – ursan

関連する問題