[過去ログ] Pythonのお勉強 Part67 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
174
(1): デフォルトの名無しさん (JP 0H71-4pLq) [] 2022/06/06(月) 13:00:44.68 ID:m98Jb+yzH(2/4) AAS
>>155
155(1): デフォルトの名無しさん (ワッチョイ 9d90-hMqK) [sage] 2022/06/06(月) 06:00:56.68 ID:uEmonKGk0(1) AAS
lambda式とか自分で書いてて頭の中から出てくる気がしない
例えば↓とか

リスト ln と数 n を受け取って
lnからn より大きい個数を返す関数number_of_big_numbers()
for文やwhile文を用いずに、filter を用いて定義してください

def number_of_big_numbers(ln, n):
return sum(map(lambda x: 1, filter(lambda x: x>n, ln)))

やってることはわかるけどfor文、while文書かないって制約ないとこんなの作らないよね?
ちなみに元の例に戻ると、filterを使えと書いてあるのだから、
len(filter(lambda x: x>n, ln))
かね。filter後にわざわざmapして1にしてsumする意味が感じられない。
mapで1にするなら、sum(map(lambda x: 1 if x > n else 0, ln))かな。
こっちは応用が効く場合がある(else -1にすればnより大きい個数とn以下の個数の差が求められるとか)
他にはsum(map(lambda x: int(x > n), ln))とかもあるけど技巧的だね
175: 567 (スップ Sdca-PXuc) [] 2022/06/06(月) 13:06:38.95 ID:oBW+89oQd(1) AAS
>>174
>>174
len(filter(lambda x: x>n, ln))
だと
TypeError: object of type 'filter' has no len()
になっちゃう
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.043s