質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

853閲覧

python:文字の置換

rails_ruby

総合スコア87

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/03/09 11:54

py

1word = ["box","photo", "axis","dish","church","leaf","box","knife"] 2for i in word: 3 if i[-1]=="h": 4 a=i+"es" 5 elif i[-1]=="x": 6 a=i+"es" 7 else: 8 a=i+"s" 9 print(a)

条件

末尾の1文字が y で、末尾から2文字目が a, i, u, e, o のいずれでもない英単語の末尾の y を除き、末尾に ies を付ける

pythonの勉強の一環で単数形を複数形に置換しようとしているのですが、上記の条件を満たす書き方が分からなくて困っています。論理演算子を使って試してみた条件を満たす結果になりませんでした。。。

py

1 elif !(i[-2,2]=='ay') || !(i[-2,2]=='ay') || !(i[-2,2]=='ay') || !(i[-2,2]=='ay') || !(i[-2,2]=='ay'):

どのように書けば良いかご教示いただけたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2019/03/09 14:51

paizaで似たような問題がありましたが、そのヒントを求める質問ですか?
rails_ruby

2019/03/09 15:00

オンライン環境で勉強している教材です。(察していただければと思います。) その問題のどうしても分からない部分を一部抜粋、変更して質問させていただきました。 このような返事になり申しわけございません。
hayataka2049

2019/03/09 15:23 編集

続けても確証が深まらないと思うので今回はこれ以上追求しませんが、初学者の学習には問題に模範解答や解説が付くサービスが適当であって、「スキルチェック的なもの」は向いていないということは伝えておきます。
guest

回答2

0

参考情報

  • 言葉の単数形と複数形の変換

https://qiita.com/podhmo/items/bba7b2355266dab72996

上で紹介されているライブラリー inflection がどんな風に処理しているかは https://github.com/jpvanhal/inflection/blob/master/inflection.py
を参照してみてください。

投稿2019/03/09 13:46

katoy

総合スコア22328

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

素直に条件を列挙してやれば良いです。

Python

1末尾の1文字が y で 2 文字列[-1] == 'y' 3 4末尾から2文字目が a, i, u, e, o のいずれでもない 5 文字列[-2] not in 'aiueo' # not in ['a' ,'i', 'u', 'e', 'o'] でも可 6 7その両方を満たすもの 8 (文字列[-1] == 'y') and (文字列[-2] not in 'aiueo')

条件を判定するための関数を用意してやるとなお良いでしょう。

別解1

continueを活用して、条件を満たさないものを振るい落とす方法も簡潔です。

Python

1for 文字列 in ...: 2 if 末尾がchなど特定の文字列である: 3 print(文字列 + 'es') 4 continue 5 6 ... その他もろもろ ... 7 8 if 末尾がyではない: 9 print(文字列 + 's') 10 continue 11 12 if 後ろから二番目が母音: 13 print(文字列 + 's') 14 continue 15 16 # ここに到達したとき、iesを付ける条件は整っている 17 ...

別解2

正規表現を利用する手もあるぶんにはあります。若干不向きな感もありますが。

投稿2019/03/09 12:15

編集2019/03/09 12:37
LouiS0616

総合スコア35676

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rails_ruby

2019/03/09 15:15

ありがとうございました。 解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問