3

質問: 下位リストをフィルタリングして、単語の前半と単語の後半が一致する単語のリストを作成して出力します。例としては、「ボンボン」、「フルフロ」、「ガガ」、「つぶやき」などがあります。

私がこれまでに持っているもの:

[word for word in lowers if list.(word)(1:len(word)/2:)==list.(word)(len(word)/2::)]

単語をリストにする方法がわからないので、このフィルターには特定の文字しか使用できません。これが機能しないことはわかっていますが、これまでのところ私の論理です。

4

2 に答える 2

2

これを試して:

[word for word in lowers if word[len(word)//2:] == word[:len(word)//2]]

于 2012-10-01T02:33:20.473 に答える
2

論理エラー:0ではなくインデックス1からスライスしていますlist.(word)(1:len(word)/2:)

構文エラー:list.(word)構文が正しくありません。リストのスライスでは[] not()を使用します。単にword[start:stop]それを分割するために使用します

使用する:

[word for word in lowers if word[:len(word)//2]==word[len(word)//2:]]

編集:IgnacioVazquezに感謝-Abramsのコメント-Python3との互換性のために整数除算(//演算子)を使用

于 2012-10-01T02:57:27.850 に答える