2017-04-10 17 views
0

私は、特定の単語がどの行番号に現れるか把握しようとしています。たとえば、以下のリストの辞書があります。ここでは、各リストは段落内の行です。リストの辞書内の単語のすべての出現を見つける

{1: ['They', 'seek', 'him', 'here'], 
2: ['they', 'seek', 'him', 'there'], 
3: ['those', 'Frenchies', 'seek', 'him', 'everywhere']} 

単語「him」が表示されている行をすべて検索したいと思います。 1行目1,2,3行目に表示されているだけですが、どうすれば出力が表示されるのでしょうか?

答えて

1

あなたは一度だけこれをしたい場合は、以下を使用することができます。

[k for (k, v) in d.items() if 'him' in v] 

あなたはこの何回も行う上で計画している場合、私はあなたはそれが表示されますラインに単語をマッピングする別の辞書を構築することをお勧めin。

0
z={1: ['They', 'seek', 'him', 'here'], 
2: ['they', 'seek', 'him', 'there'], 
3: ['those', 'Frenchies', 'seek', 'him', 'everywhere']} 

indices=[k for k in z if 'him' in z[k]] 
0

キーを繰り返して、各リストに検索句があるかどうかを確認できます。このコードが役立つかどうか確認してください:

searchPhrase = "him" 
lines = [] 
for i in iDict: 
    if(searchPhrase in iDict[i]) 
     lines.append(i) 
print(lines) 
0

ここでは簡単な解決方法を示します。

d={1: ['They', 'seek', 'him', 'here'], 2: ['they', 'seek', 'him', 'there'], 3: ['those', 'Frenchies', 'seek', 'him', 'everywhere']} 
word="him" 
lines=[] 
for i in d: 
    if word in d[i]: 
     lines.append(i) 
print lines 
関連する問題