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

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

新規登録して質問してみよう
ただいま回答率
85.50%
if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

4回答

987閲覧

pythonにてリストから3単語以上の要素を抜き出す条件文

Mathroat

総合スコア3

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2021/06/01 11:18

実現したいこと

pythonを使用しています。
リストから条件を指定して新しいリストを作ろうと思っています。

リストは1単語の英単語から複数単語からなる英文まで様々な要素を含んでいます。
eg)word_list=["word","I am a student","I have a pen","love me"]

このようなリストから3単語以上を含む要素のみを抽出したいと考えています。

発生している問題

2単語以上を抽出してリストにするには、 new_list=[a for a in word_list if " " in a] という条件で抽出できました。 しかし、3単語以上を抽出する方法がわからないので質問を初投稿させていただきました。 ご回答いただけたら、幸いです。 よろしくお願いします。

該当のソースコード

python

1new_list=[a for a in word_list if " " in a] 2

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

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

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

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

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

guest

回答4

0

単語の区切りが2個以上の空白の場合を考慮すると、

len(a.split()) >= 3

を使うのが安全です。

これなら、"love me"のような単語も対象外となります。

python

1>>> word_list = ["word","I am a student","I have a pen","love me"] 2>>> new_list = [a for a in word_list if len(a.split()) >= 3] 3>>> print(new_list) 4['I am a student', 'I have a pen']

投稿2021/06/01 11:55

ppaul

総合スコア24666

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

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

Mathroat

2021/06/01 12:42

回答ありがとうございます!! とても助かりました!
guest

0

python

1word_list=["word","I am a student","I have a pen","I love you"] 2result = [a for a in word_list if len(a.split(" ")) >= 3] 3print(result) 4# ['I am a student', 'I have a pen', 'I love you']

投稿2021/06/01 11:28

meg_

総合スコア10577

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

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

Mathroat

2021/06/01 12:41

回答有難うございます!!
guest

0

ベストアンサー

空白が単語を分ける大前提でしたら下記でいかがでしょうか?
new_list=[a for a in word_list if a.count(" ") > 2]

投稿2021/06/01 11:27

m2l

総合スコア318

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

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

Mathroat

2021/06/01 12:43

回答ありがとうございます! 空白が単語を分ける前提で私も考えていたので、こちらで完璧です! とても迅速な回答に感謝します。
guest

0

おはようございます。

問題文読ませていただきました。

こんな感じでいかがでしょうか?

python

1# filter参考 : https://qiita.com/github-nakasho/items/a08e21e80cbc9761db2f 2# split参考 : https://note.nkmk.me/python-split-rsplit-splitlines-re/ 3# 三項演算子参考 : https://note.nkmk.me/python-if-conditional-expressions/ 4answer = list( 5 filter( 6 lambda a: a != '', 7 [word if len(word.split(' ')) >= 3 else '' 8 for word in ["word", "I am a student", "I have a pen", "love me"] 9 ] 10 ) 11) 12print(answer)

ご確認のほど、よろしくお願いいたします。????‍♂️

投稿2021/06/01 23:00

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問