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

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

詳細はこちら
Python 3.x

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

Q&A

解決済

4回答

3275閲覧

pythonのlistにある複数の文字をカウントしたいです!

nre

総合スコア35

Python 3.x

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

0グッド

0クリップ

投稿2021/01/05 09:47

ここにDataFrameで作成した表から抽出したものをlist化したものがあります。
このリストにあるXを含む文字列と,FREEという文字をカウントして整数で返したいです。
または文字列の数をカウントしたいです!
下記のリストの場合だと、文字列が3つあるので 整数3 を返したいです!
色々試してみたのですが、うまく実行出来ないためお教えいただければ幸いです。

python

1['29X', 17, 'FREE', '59X', 65]

29Xと59X、FREEは文字列で他は整数です。
※Xの左側の数字はランダムの為、等しいではなくXを含むという形にしたいです。

試した事

count()関数を使用したのですが、完全一致で一つの条件しかカウント出来ないので実現出来ませんでした。
その他にも色々な関数を実行してみたのですがエラーだったりが多く実現出来ませんでした。

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

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

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

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

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

guest

回答4

0

filter を使った例を示します。
@.@y

pythopn3

1lst = ['29X', 17, 'FREE', '59X', 65, "ABC"] 2 3lst_1 = [e for e in lst if type(e) is str] 4print(lst_1) 5print(len(lst_1)) 6 7lst_2 = list(filter(lambda x: type(x) is str, lst)) 8print(lst_2) 9print(len(lst_2)) 10 11lst_3 = list(filter(lambda x: str(x) == "FREE" or "X" in str(x), lst)) 12print(lst_3) 13print(len(lst_3))

実行例
イメージ説明

参考情報

  • filter関数 リストから条件を指定して抽出する

https://www.python.ambitious-engineer.com/archives/689

投稿2021/01/06 23:00

katoy

総合スコア22324

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

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

0

python

1print(len([i for i in ['29X', 17, 'FREE', '59X', 65] if type(i) == str and ('X' in i or i == 'FREE')])) 2# 3

投稿2021/01/05 11:28

meg_

総合スコア10742

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

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

nre

2021/01/06 05:22

この度は大変お忙しい中、ご回答して頂き誠にありがとうございました!
guest

0

ベストアンサー

文字列の個数は以下のようにできます。

Python

1lst = ['29X', 17, 'FREE', '59X', 65] 2lst = [i for i in lst if isinstance(i, str)] # 文字列のみ 3cnt = len(lst) # 個数 4print(cnt) 5# 3 6```Xを含む文字列とFREEの個数は、 7```Python 8lst = ['29X', 17, 'FREE', '59X', 65] 9lst = [i for i in lst if isinstance(i, str)] # 文字列のみ 10lst = [i for i in lst if i == 'FREE' or 'X' in i] # FREE or X 11cnt = len(lst) # 個数 12print(cnt) 13# 3

投稿2021/01/05 10:55

編集2021/01/05 10:56
ForestSeo

総合スコア2722

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

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

nre

2021/01/06 05:21

この度は大変お忙しい中、ご回答して頂き誠にありがとうございます! コードがとても分かりやすく理解する事ができました!
guest

0

forでループして、ifで判断してカウントします。

投稿2021/01/05 10:06

otn

総合スコア85893

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問