2017-10-30 2 views
-1

私は文章の文字列を持っています。文には8つの単語があります。私がしようとしているのは、第3、第5、第5の言葉を文にすることです。私は、次のようなインデックスを使用して試してみました:文字列から単語のグループを取得するにはどうすればよいですか?

string[3][4][5] 

しかし、これはIndexErrorを発生させます。私はここで何が欠けていますか?

+3

**(**)あなたがやっていることは**インデックス作成**と呼ばれています。 **(2)**あなたが欲しいと思うものは** _スライシング_ **: 'page_soup.title.string [3:6]'と呼ばれます。 –

+0

これは、 'page_soup.title.string'が単語のリストであることを前提としています。 1つの大きな文字列である可能性が高いので、3番目、4番目、5番目の_characters_を解決します。 –

+0

@JohnGordon真実ですが、彼が "単語"と言うとき、彼は "文字のグループ"を意味すると仮定します。それは必ずしも真実ではありません。彼はすでにリストスライシングの用語について混乱していました。彼はここでも同じことをすることができます。 –

答えて

2
# split the title string into words (split by spaces) 
thead_list = page_soup.title.string.split() 

# access elements with index 3, 4, 5 
words = thead_list[3:6] 

するか、あなただけの3番目と5番目の単語をしたい場合は、あなたが抽出された単語を連結する必要がある場合は、thead_list[2]thead_list[4]

を使用し、次にこれを実行します:

abコードの1行にステップを進めてください:

thead = " ".join(page_soup.title.string.split()[3:6]) 
+0

私はあなたのコードを使用すると、私は奇妙な結果を得る。何らかの理由で、すべての単語の3番目の単語をつかむ。また、次のように表示されます。 '[u'MyThirdWord ']' - '[u']'を追加することは、私が望むものではありません。 –

+0

@JamesDean:すべての単語の3番目の単語?また、 'u'は実際には単語の一部ではないので、それについて心配しないでください – omijn

+0

うん、私は知っているが、それは私のHTMLページに表示されます。また、なぜthead = page_soup.title.string.split()[3:4] 'のように単純にできないのでしょうか? –

0

あなたはこれを試すことができます。

thead = page_soup.title.string 
final_word1, final_word2 = thead.split()[2], thead.split()[4] 
+0

なぜ、3番目、4番目、5番目= page_soup.title.string.split()[3:6]ではないのですか? –

+0

また、あなたの解決策は間違っています:_ "3番目、** 4番目の**、第5番目の文" _。 –

+0

@ChristianDeanチャットで言及されたOPそのもの "私は第3の単語と第5の単語をつかみたい"。 – Ajax1234

関連する問題