[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/30 01:58 / Filesize : 284 KB / Number-of Response : 1045
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【まず1嫁】くだすれPython(超初心者用) その57



1 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 22:25:08.74 ID:/hGmbW/Z.net]
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合★は、
  表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式◇ www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その56
mevius.5ch.net/test/read.cgi/tech/1640536690/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###

268 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 15:35:58.33 ID:rlSsskU5.net]
ずいぶんとお利口な超初心者の集まりだこと…

269 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 15:52:36.65 ID:cpkuMkfN.net]
超初心者が質問できるスレであって住人全員が超初心者というわけじゃないよ

270 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 17:56:14 ID:qGSK8RbV.net]
メーリングリストのログ追ってみたが議論らしい議論は全くなかったぞコレ
Tim Petersが案をだして、じゃそれでくらいのノリ

271 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 19:33:17.31 ID:5LwbToQX.net]
悲しいとき〜、悲しいとき〜、不毛な努力をしているアホをみたとき〜

272 名前:デフォルトの名無しさん [2022/07/15(金) 21:59:49.41 ID:Mg+hVTQU.net]
少し内容がずれているかもしれませんが質問させてください。
Windows10で右クリック-新規作成で空のpythonファイル(.py)を作成するようにしたいのですが、
何か方法はありますでしょうか?
下記のURLを参考にしてレジストリを変更する方法を調べて実行したのですが、反映しません。
https://qiita.com/ioComk/items/ab79749b0f0bf05db97e

教えていただきたく。よろしくお願いします。

273 名前:デフォルトの名無しさん [2022/07/15(金) 23:42:53 ID:Fa+NFDEY.net]
>>258
実際bytesとかでjoin相当のことをしようとしたらどうすればいいんだろう?itertools使えばなんとかなりそうだけど

274 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 00:03:25 ID:HB6roBeY.net]
__add__かjoin専用メソッドがある前提でひたすらinject
それらが型変換できないケースだと失敗とか

275 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 00:23:45.26 ID:fjBrDVen.net]
>>265
少なくとも今試しても記事の通りできた
詳しくどうやったか開示しないと分からん

276 名前:デフォルトの名無しさん [2022/07/16(土) 10:38:02.22 ID:5edRFReA.net]
>>268
詳しくといっても難しいですが
pythonはAnacondaでインストール。
新規pyファイルはサクラエディタと紐づいています。



277 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 14:30:48.70 ID:7RINBtm9.net]
>>269
そしたらサクラエディタに関連付けしてるからだろうね
新規作成は関連付けされてるアイコンとファイルタイプ名称で表示される

278 名前:デフォルトの名無しさん [2022/07/16(土) 16:20:01.38 ID:ck4+820Y.net]
なんでこうなるのかわからない


_, *elements , _ = [1, 2, 3, 4, 5, 6, 7, 8]
print(elements) # [2, 3, 4, 5, 6, 7]
print(type(elements)) # <class 'list'>

elements_B = [1, 2, 3, 4, 5, 6, 7, 8]
B = _, *elements_B, _
print(B) # (8, 1, 2, 3, 4, 5, 6, 7, 8, 8)
print(type(B)) # <class 'tuple'>

279 名前:デフォルトの名無しさん mailto:sage [2022/07/16(土) 16:34:54.36 ID:730D9OZt.net]
print(_)してみたら

280 名前:デフォルトの名無しさん [2022/07/16(土) 16:56:27.29 ID:ck4+820Y.net]
ああ、理解したわ

a, b, c = 1,2,3
a=1
b=2
c=3
ってのと変わらんのか

a, *b, c = 1,2,2,2,2,3
a=1
b=2,2,2,2
c=3
みたいなことか

281 名前:デフォルトの名無しさん [2022/07/16(土) 19:51:21.14 ID:GdTpN6Df.net]
bytes で join ってさ
b''.join(bytes_data)
で良いんじゃね

282 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 11:57:25.95 ID:VAtjDotR.net]
2^26倍精度浮動小数点数の最大値
(2^((2^(111-1))-1))*(2-(2^-2147483536))
https://ideone.com/3sxXF1

は計算できるが、

2^27倍精度浮動小数点数の最大値
(2^((2^(115-1))-1))*(2-(2^-4294967180))
https://ideone.com/MDO46W

は誤差が出て計算できない。
何とかならない?

283 名前:デフォルトの名無しさん mailto: []
[ここ壊れてます]

284 名前: mailto:2022/07/17(日) 12:39:58.12 ID:Un2LAdnT.net [ emaxの最大値は999999999999999999みたいだからどうにもならんのでは ]
[ここ壊れてます]

285 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 15:02:05.03 ID:QiBhjgar.net]
emacs

286 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 15:16:14.73 ID:VAtjDotR.net]
>>276
10^10^100000
https://ideone.com/PIILdo



287 名前:デフォルトの名無しさん [2022/07/17(日) 15:22:34.18 ID:QiBhjgar.net]
>>266
>>274
https://ideone.com/cEpoSf
# joinの問題と言うよりもlist(b'hoge')の方に問題が在る訳だな

288 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 15:44:47.39 ID:7GRljLrT.net]
def f(a):
  return a+1

a=[1,2]
print(f(a))

>[2,3]

みたいなことがやりたいんですが、
関数にまとめてデータを渡して処理してもらうようなことはできないでしょうか

本来はf(1),f(2)とするところです
数が多ければforで回すのですが、まとめてどさっと渡したいです

289 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 16:13:54.34 ID:eihDCF0F.net]
>>280
https://www.tech-teacher.jp/blog/python-map/

290 名前:デフォルトの名無しさん [2022/07/17(日) 17:40:51.90 ID:mQpJsc2r.net]
何だこの記事は

291 名前:デフォルトの名無しさん [2022/07/17(日) 17:47:08.08 ID:GTQ/Lt+k.net]
>>279
なるほど。strをバラしてもstrだが、bytesはバラすとintになってしまうということか。
まあ、実用上は問題ないかなあ。というかここを崩すとbytesを1バイトずつバラしてjoinするという殆どしない操作のために、
strとbytesの実用性がかなり失われるよね

292 名前:デフォルトの名無しさん [2022/07/17(日) 17:58:37.99 ID:Fxi+TDuE.net]
>>280
素直にnumpy使う

ではツマランのでこんなのはどうだろう

def matome(func):
__def process(*list_args):
____return [func(*args) for args in zip(*list_args)]

__return process
@matome
def f(a):
__return a+1
a = [1, 2, 3]
print(f(a))

293 名前:280 mailto:sage [2022/07/17(日) 18:36:03.96 ID:jWrWgoZv.net]
なるほど、map関数や*list_argsなどのやり方があるのですね
これはどちらもforよりは軽くなりそうな感じはします

>>284
素直にnumpy、がそもそもわかってないのですが、教えていただけませんか?

294 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 19:23:47.87 ID:pr2Iyzs9.net]
>>284
無駄な処理があるので修正しときますね
def matome(func):
____def process(list_arg):
________return [func(list_item) for list_item in list_arg]
____return process

>>285
ググレば一発で出てきますよー
import numpy as np
a = np.array([1,2,3])
a+1
_.tolist()

295 名前:デフォルトの名無しさん [2022/07/17(日) 19:47:38.44 ID:Fxi+TDuE.net]
>>286
それだとfの引数が増えた時に対応できない

296 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 20:59:15.42 ID:4v0QWrzY.net]
mapと内包表記どっちが軽いんだろ?
a=[1,2]
b=[i+1 for i in a]
これで終わる話ではあるよね



297 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 21:23:00.57 ID:zoulLgXv.net]
話を単純化して話してんだろ
一般的な解があるほうが親切

298 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 21:25:35.67 ID:pr2Iyzs9.net]
>>287
なるほど、f([1,2,3],[4,5,6]) → [5,7,9] とかにするならmatomeはそのままで
def f(*a):
__return sum(a)

で対応できるけども、しかし! 引数が1つの場合が f([1,2,3]) → [2,3,4] であるならば、
引数が2つの場合、f([1,2,3],[4,5,6]) → ([2,3,4], [5,6,7]) となるのが自然ではなかろうか?
であるとするならば、fはリストの各要素の計算でありそのままにして、matomeを改造する必要がある

299 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 21:31:17.15 ID:LbIjTSt1.net]
>>289
どれに対しての話?

300 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 21:38:02.50 ID:Rw0hMsrD.net]
>>290
sumでない場合は?
たとえばa1*a2+a3みたいな一般式もありう

301 名前:るよね []
[ここ壊れてます]

302 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 21:38:57.48 ID:Rw0hMsrD.net]
というか、ただのsumなら普通は関数にぶっこまないよね

303 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 21:43:59.07 ID:pr2Iyzs9.net]
リストの各要素に1足すだけの場合も普通に関数にぶっこまないけどな

304 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 22:12:41.33 ID:pr2Iyzs9.net]
>>292
matomeのデコレータ付けるだけで色んな一般式を適用した関数が簡単に作れるってことね
はいはい、理解しました
fをそのまま可変にすることばかり考えてたわ

305 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 22:43:41.36 ID:Xin01ayH.net]
zipするのは違うと思うけどな

306 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 09:21:19.20 ID:4im9UY7E.net]
>>286
教えてくださりありがとうございます
>>284のほうが拡張性があって気に入りました
やりたいことはできそうです
ありがとうございました



307 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 10:01:23.22 ID:4lWXgehE.net]
f(a,b,c) -> rをリスト用にリフトするなら
f'([(a1,b1,c1), (a2,b2,c2),(a3,b3,c3)…]) -> [r1,r2,r3,…]

f'(([a1,a2,a3,…], [b1,b2,b3,…], [c1,c2,c3,…])) -> [r1,r2,r3…]
にするのは筋が悪い

308 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 10:22:26.91 ID:q/MsDqBP.net]
>>290の完成イメージ
def get_list_items(func):
____def process(*lists):
________ret = tuple([func(item) for item in lst] for lst in lists)
________return ret[0] if len(ret) == 1 else ret
____return process

@get_list_items
def f3(item):
____return item+1

f3([1,2,3],[4,5,6],[7,8,9]) → ([2, 3, 4], [5, 6, 7], [8, 9, 10])
f3([1,2,3],[4,5,6]) → ([2, 3, 4], [5, 6, 7])
f3([1,2,3]) → [2, 3, 4]

なるほど、この場合は可変にする必要性をあまり感じないね
f3([1,2,3]), f3([4,5,6]), f3([7,8,9])って個別に呼べばいいだけだし
>>284の方が断然優れていますわ

309 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 10:36:45.20 ID:E3N1Hbif.net]
個別に呼ぶよりまとめて呼んだほうが処理が軽いんじゃないの

310 名前:名無し募集中。。。 mailto:sage [2022/07/18(月) 10:39:15.32 ID:kc1Sb0dj.net]
FOR文でフォルダ以下のサブフォルダの中のファイルを
拡張子毎に振り分けるプログラムを作ってみましたが
1ファイルを移動するのに1秒くらいかかってしまいます
shutil.move(FFF, KKK) (FFFとKKKは変数)
この文を削除するとものすごく早くなります
どうすれば早くなりますか?

311 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 10:44:27.05 ID:E3N1Hbif.net]
でもあれか、matomeをつけてfを宣言してしまうと、普通にfを使うことができなくなってしまうのか
このへん関数を呼ぶときにmatomeをつけるかどうかで使い分ける方法ないのかな

312 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 10:54:26.68 ID:Tf87Irt3.net]
>>302
ごく素直に、fはデコレーターを付けずそのまま宣言する
matomeを適用する関数はf_matome = matome(f)と定義する

313 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 11:04:03.01 ID:q/MsDqBP.net]
>>302
デコレータ付けた関数はまとめてモジュール化するのが一番良いと思う
list_func.f([1,2,3])

314 名前:デフォルトの名無しさん [2022/07/18(月) 11:36:57.20 ID:1omE+gQa.net]
なんか頭の可笑しいのが劣化版だしまくるスレになってるな

315 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 12:10:19.60 ID:jgot1txW.net]
>>301
srcとdstが同じドライブならos.renameかPath.renameにすれば速くなる
1秒が遅いのかどうかはファイル内容や環境によるから分からない

316 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 12:13:47.35 ID:J9TOF8GR.net]
numpy ぐらい、Python のトップ・キノコードの動画があるのでは?

キノクエストと言う、2千円のサロンも始まった



317 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 12:42:22.47 ID:Ni7oGdeS.net]
>>301
PythonのバージョンやOS、テストしたファイルサイズ書こうよ
Python3.10.5 Windows10は同じドライブならそんな時間かからないよ

318 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 12:47:11.59 ID:q/MsDqBP.net]
>>305
いじけてないでキミも劣化版出せばいいんだよ
格好つけてたら何も

319 名前:できないぞ []
[ここ壊れてます]

320 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 13:41:26.68 ID:Zd8mDGLh.net]
少なくとも>>280をやるためにデコレーターはないわ

321 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 14:39:38.37 ID:lIUF2c+K.net]
>>310
>>289

322 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 14:46:42.16 ID:koL1rSR0.net]
初心者に対して不要な一般化は余計に分かりにくくするだけやろ
やり方自体が御世辞にもいいアプローチとは言えないし

323 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:01:53.40 ID:q/MsDqBP.net]
>>310
デコレータみたときは「やられた!」って思ったね
しかも可変、嫉妬してちょっと噛みついてみたけど見事に返り討ち
いやはや、彼のコードはみんなマネした方がいいよ、良いものはどんどん取り入れよう

そういえば、ひろゆきが良く自慢げに言う話を思い出したんだけど、
ゲームを作ってみる授業?か何かで友達が書いたコードがメチャメチャ短かったんだって
上下左右の操作なんだけど、ちょっとした計算で実現していて、それ見たひろゆきが才能の差を
感じてゲームクリエイターをあきらめたとかいう才能の話
それ聞いたときはアホじゃね?良いコードみたらパクればいいだけじゃんって思ったものだよ
たぶんひろゆきはすごくプライドが高くてちょっと躓いただけで諦めちゃうメンタルなんだよね
そんなこんなで出来上がったのがヒマつぶしwとか言って他人の文句しか言わない人間になっちゃった
「頭悪い!」と他人を下げることで自分を慰める毎日、やっぱ諦めずに挑戦するのって大事だなって思いました
そうホリエモンってひろゆきと真逆だよね、ホリエモンは今も色んなことに挑戦している、ホリエモンは輝いているよ

324 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:04:25.71 ID:PImFDAtt.net]
>>312
>>297

325 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:04:43.60 ID:EPf9iKEG.net]
>>311
一般的?

326 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:17:32.88 ID:J9TOF8GR.net]
Ruby とか、関数型言語Elixir では、map が基本



327 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:18:04.67 ID:o0lyPM3S.net]
他人の話を否定するだけの奴って何の生産性もないよな
低レベルでもコード提示するほうがよっぽど役に立つわ

328 名前:デフォルトの名無しさん [2022/07/18(月) 15:22:34.62 ID:qwr+PsCM.net]
>>312
参考までに良いアプローチplz

329 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:36:01.64 ID:y8tEu6pL.net]
matomeとmap、どっちが速いんだろうか
どっちもforで毎回f呼び出すよりは速そうだけど

330 名前:デフォルトの名無しさん [2022/07/18(月) 15:55:55.10 ID:GojDtZHN.net]
デコレータ
使って観たい
御年頃

331 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:59:17.63 ID:LKJtspF0.net]
処理時間測定してみたらmapのほうが2割前後速かったわ

332 名前:デフォルトの名無しさん [2022/07/18(月) 15:59:40.46 ID:GojDtZHN.net]
>低レベルでもコード提示するほうが

ないわ

333 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 16:06:47.73 ID:kISKbyyY.net]
ついでなんで書いとくね
実行時間
forを使ってf呼び出し:1
matome:0.5
map:0.4

334 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 16:21:22.72 ID:ln/vUyrz.net]
>>322
比較対象は
> 他人の話を否定するだけの奴
だぞ、頭大丈夫か?

335 名前:デフォルトの名無しさん [2022/07/18(月) 16:30:53.42 ID:qwr+PsCM.net]
デコレーターに親殺されたニキがおるな

336 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 17:45:39.65 ID:UwLRS3iL.net]
普通に考えてリストに関数をそれぞれ適用させたいならmapが一番シンプルでmapと同意の内包表記が最もPythonらしいのでは?



337 名前:デフォルトの名無しさん [2022/07/18(月) 18:04:13.67 ID:LNL0CNxW.net]
mapと同意?どういうこと?

338 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:04:19.00 ID:pfq1SIlO.net]
お盆も近いからデコレータに恨みがある奴も
這い出して来ているんでしょう

339 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:08:48.63 ID:PImFDAtt.net]
単にmapの人が、なんでmap使わないんだと言っているだけなのでは?
それがデコレータsageに見えると

340 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:23:16.60 ID:q/MsDqBP.net]
内包表記の方が断然好きだな〜、mapはシンプルになる場合もあるけど
今回のようにゴチャる場合もあるんだよな〜
下記はmatomeを自分好みの関数名と変数名に改変したヤツでっす!

def get_lists_items(func):
____# 内包表記版
____def process(*lists):
________return [func(*items) for items in zip(*lists)]
____return process

def get_lists_items(func):
____# map版
____def process(*lists):
________return list(map(lambda items: func(*items), zip(*lists)))
____return process

341 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:28:18.32 ID:2ipqvE3v.net]
>>330
なんでzip?
そういう引数リスト専用の関数を作りたいの?

342 名前:デフォルトの名無しさん [2022/07/18(月) 18:40:20.03 ID:qwr+PsCM.net]
>>280の望みは「intを引数に取り計算結果を返す関数を、"シームレスに"リストにも拡張すること」だからデコレーターが適当じゃない?Pythonicかどうかは知らん

343 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:50:45.67 ID:0V7pBSnr.net]
デコレータは不適当

デコレータは基本的に元の関数を透過的に拡張するために使う物

def f(a, b, c)をデコレートしても
デコレート前と同じf(a, b, c)で呼び出し可能で
成功時には同じ戻り値を得られるように作る

高階関数ならなんでもデコレータにすればいいわけじゃない

344 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:52:28.91 ID:q/MsDqBP.net]
>>331
そのとおり、>>280だけでなく色んなパターンのリスト関数が簡単に作れるのだよ
このデコレータがあればね!

345 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:53:15.28 ID:9fYXH/DB.net]
勉強になったわ。
今までPyQtでアプリ作っていたが、@pyqtSlot()がQtデザイナーからのリンクみたいなもんかと思ってました。
すっきりです。

346 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:58:21.00 ID:VjQ/Ckj0.net]
デコレーターのメリットがあるならそれ使えばいいけど遅い上に記述量増えるしね
どう見ても>>320だろw



347 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 20:38:42.55 ID:FbOneiqz.net]
forよりは速い

348 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 22:52:23 ID:P7xIx3wJ.net]
今回の話でデコレータが内包表記より優れているという理屈が理解できない
def f(a):
  return a+1

a=[1,2]
print([f(i) for i in a])

これで事足りるでしょ

349 名前:デフォルトの名無しさん [2022/07/18(月) 22:52:35 ID:SFjyzDm9.net]
超絶初心者です。
counter: int = 0 # 他の処理で変わっていく
def test(self):
  user_name = "xxxx"
  if counter > 0:
   now = datetime.datetime.now()
   ..... # 色々処理
now ←ここで nowは参照させたくない、スコープ外にしたい

今だとnow変数はif文が処理されれば値が入ります。
now変数のスコープをif文内だけにするってことはできますか。

350 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:05:31.63 ID:2hrGCnNJ.net]
self ということはクラスメソッドだと思うけど
他のメソッドから self.test() を呼べば now は隠蔽される。
もしくは頭で now = None しておいて
if now is not None:
でわけるとか。

351 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:13:05.76 ID:1e6Pm9kS.net]
>>330
starmap使えばlambdaいらない

352 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:22:42.01 ID:q/MsDqBP.net]
>>341 なるほど、でも内包表記の方が見やすいよね!
from itertools import starmap
def get_lists_items(func):
____# starmap版
____def process(*lists):
________return list(starmap(func, zip(*lists)))
____return process

353 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:35:38.05 ID:Yb4pZTqb.net]
>>342
二択ならね
でもどっちも用途に対してアンチパターンだから使わないのが吉

354 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:42:11.41 ID:q/MsDqBP.net]
>>343
for文使うのがベストってこと?

355 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:54:17 ID:8wpG6nJ0.net]
re.matchで何がマッチしたか知る方法てある?
s = 'ABCDEFGHIJK'
m = re.match(r'ABC|HIJ', s) 'm: <re.Match object;

356 名前:span=(1, 4), match='BCD'>

match='BCD'を取ってきたいのだが、方法てある?


ネットだと()でくくってgroupsでとれて書いてあるけど、
s = 'ABCDEFGHIJK'
m = re.search(r'(BCD|HIJ)', s)
x_text = m.groups(0)
print(x_text)

('BCD',)て表示されるし、x_textはstr型じゃないから文字列操作ができない。

Python 3.9.13です。
[]
[ここ壊れてます]



357 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 00:05:16 ID:pVZms+nG.net]
>>339
pythonにはブロックスコープがないので
if文の中で新しく作成した変数のスコープをif文内だけにすることはできないよ

358 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 00:32:46.32 ID:8NIkYSWg.net]
>>345
groupとgroupsとそれぞれある
group(0)ならstr

359 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 01:22:31.44 ID:XqVlnmi4.net]
>>339
del now でどうでしょうか

360 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 08:41:05.75 ID:UwsMPoKY.net]
内包表記って普通のforと違うみたいだけど、なんでこんなに速いの?

361 名前:デフォルトの名無しさん [2022/07/19(火) 09:10:11.34 ID:mYl9AT7Z.net]
>>340,346,348
339です、どうもありがとうです。言語仕様的にブロックスコープないのはしょうがないですね。
del は試してみたいと思います。

362 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 09:30:11.93 ID:ioxaO2di.net]
a=[f(x) for x in range(100)]
で、今xがいくつのところをやってますとprintする方法はありますか?
forを外に持ってくると処理が遅くなってしまうので避けたいです

363 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 09:32:53.74 ID:Dm4GA3mb.net]
訂正
a=[f(x[i]) for i in range(100)]
にします
iの値は関数に持ち込みません
持ち込むのなら関数でprintできますが、それはなしにします

364 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:04:16.93 ID:L7UUhMht.net]
>>352
a = [print(i) or f(x[i]) for i in range(10)]

365 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:12:32 ID:zbPEuSRT.net]
CPU処理を高速化するのはmultiprocessingを使うことでできたのですが、
今度はGPUでmodel.fitするほうが遅くてしょうがないです
multiprocessing同様に簡単に速くする方法があれば教えてください

366 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:15:51 ID:XqVlnmi4.net]
>>352
fの中でカウント用の変数を持ってインクリメントする



367 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:20:19 ID:+zTkD2Kt.net]


368 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:20:59 ID:+zTkD2Kt.net]
>>353
できましたありがとう
ところで、どうしてorなんでしょう?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<284KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef