アプリ版:「スタンプのみでお礼する」機能のリリースについて

初学者です。
スプレッドシートから指定した日付の範囲(月)でリストを抽出したいのですが、行き詰っています。
知識が乏しく、勉強不足なのは承知の上で教えて頂けると幸いです。

#list_of_lists = wks.get_col(2)
list_of_lists_in = [ s for s in list_of_lists if "2022/02" in s]

print(list_of_lists_in)

['2022/02/01', '2022/02/02', '2022/02/03', '2022/02/04', '2022/02/05', '2022/02/07', '2022/02/08', '2022/02/09', '2022/02/11', '2022/02/12', '2022/02/15', '2022/02/16', '2022/02/17', '2022/02/18', '2022/02/19', '2022/02/19', '2022/02/21', '2022/02/22', '2022/02/23', '2022/02/24', '2022/02/25', '2022/02/26', '2022/02/28', '2022/02/07', '2022/02/08', '2022/02/09', '2022/02/12']

だと部分一致で抽出できるのですが、


list_of_lists = wks.get_all_values()
list_of_lists_in = [ s for s in list_of_lists if "2022/02" in s]

print(list_of_lists_in)

[]

だと[]で抽出されます。

このような場合はどのように解決したらよいでしょうか。

シート内は画像のようなデータです。

質問が言葉足らずではありますが、よろしくお願いします。

「pythonでのリスト内抽出について」の質問画像

A 回答 (1件)

文字列の部分一致は inを文字列に直接使う時だけ。


リストに対して使うと完全一致の要素の有無が判定されます。

こんなかんじでは

def f(list, s):
return [x for x in list if s in x ]

[y for y in list_of_lists if f(y, "2022/02")]

一行に書けるけど、読みにくいので・・・
    • good
    • 0
この回答へのお礼

やってみます

回答ありがとうございます。
参考にしてみます!

お礼日時:2022/03/24 21:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!