🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

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

Q&A

解決済

2回答

619閲覧

Pythonで文字列のリストから対象文字列を含む行を取り出す方法について

err0r

総合スコア20

Python

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

0グッド

0クリップ

投稿2020/01/03 01:08

編集2020/01/04 03:57

Python3で文字列が複数格納されたListから比較対象のListの文字列に一致する任意の複数の文字列を取り出す方法を教えて頂けないでしょうか?
具体的には、下記のようなListから 'みかん’ 'ほうれん草' などの指定した文字列を含む行を取り出したいのがやりたい事になります。 

<文字列を取り出したいList>
1 リンゴ 集荷OK
2 みかん 集荷NG
3 白菜 集荷OK
4 キャベツ 集荷OK
5 ほうれん草 集荷NG
6 ピーマン 集荷OK

比較対象List = 'みかん', 'ほうれん草'

<補足>
実際には、Listには下記のような文字列が格納されるのですが、Targetの複数の文字列を含む行を例えば、'購入意思表示'のような文字列と部分一致をみる場合はどうすれば良いでしょうか?

新規上場株式ブックビルディング/購入意思表示
公募増資・売出ブックビルディング/購入意思表示
・・・
・・

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

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

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

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

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

otn

2020/01/03 01:15

データ構造が不明なので、リストを変数に代入する部分のコードを書いてください。
err0r

2020/01/03 01:56

リストはseleniumの下記コマンドでHTMLから取得しています。 elems = driver.find_elements_by_xpath("//td[@class='fl01']") 下記のような文字列が格納されます。この文字列のリストからキーワードに一致する行のみ取り出したいのがやりたい操作になります。 新規上場株式ブックビルディング/購入意思表示 公募増資・売出ブックビルディング/購入意思表示 IPOチャレンジポイント ・ ・ ・
otn

2020/01/03 02:01

抽象的な質問だと、回答者がいろいろな仮定を置いて回答しますが、仮定が合ってないと、あなたの役に立たない回答となり、質問者に失礼です。
err0r

2020/01/03 02:25

すいません。情報不足で失礼いたしました。。
guest

回答2

0

データ構造が不明ですが、文字列のリストというのが文字通りなら、

Python

1data = [ 2"リンゴ 集荷OK", 3"みかん 集荷NG", 4"白菜 集荷OK", 5"キャベツ 集荷OK", 6"ほうれん草 集荷NG", 7"ピーマン 集荷OK", 8] 9targets = ["みかん", "ほうれん草"] 10 11out = [ datum for datum in data for target in targets if target in datum ] 12print(out)

投稿2020/01/03 02:09

otn

総合スコア85890

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

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

err0r

2020/01/04 03:54

ご提示いただいた方法で動作しました! 本当に助かりました。。。
guest

0

ベストアンサー

適当にリスト化してみました。

python

1data = [ 2 [1, 'リンゴ', '集荷OK'], 3 [2, 'みかん', '集荷NG'], 4 [3, '白菜', '集荷OK'], 5 [4, 'キャベツ', '集荷OK'], 6 [5, 'ほうれん草', '集荷NG'], 7 [6, 'ピーマン', '集荷OK'], 8] 9 10target = ['みかん', 'ほうれん草'] 11 12for number, name, status in data: 13 if name in target: 14 print(number, name, status)

別例追加

python

1data = [ 2 '新規上場株式ブックビルディング/購入意思表示', 3 '公募増資・売出ブックビルディング/購入意思表示', 4 '・・・', 5 '・・', 6 '・', 7] 8 9for item in data: 10 if '購入意思表示' in item: 11 print(item)

投稿2020/01/03 01:37

編集2020/01/03 02:16
shiracamus

総合スコア5406

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

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

err0r

2020/01/03 02:06

ありがとうございます。Listには下記のような文字列が格納されるのですが、Targetの複数の文字列を含む行を例えば、'購入意思表示'のような文字列と部分一致をみる場合はどうすれば良いでしょうか? 新規上場株式ブックビルディング/購入意思表示 公募増資・売出ブックビルディング/購入意思表示 ・・・ ・・ ・
shiracamus

2020/01/03 02:17

回答に追記しました。 質問内容を変えるのであれば、質問を編集してください。
err0r

2020/01/04 03:55

別例もありがとうございました。 お陰様で無事に解決しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問