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 ###
210 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 09:44:12.51 ID:EefHjxyZ.net] 答えが出た後も探索しちゃうからそれを止めるための処理ってことか
211 名前:デフォルトの名無しさん [2022/07/02(土) 09:57:44.64 ID:COZLaCzb.net] ninbe
212 名前:デフォルトの名無しさん [2022/07/11(月) 12:19:00 ID:aiHSnYNz.net] google colabでcuda使いたい。 良い方法ある?
213 名前:デフォルトの名無しさん [2022/07/11(月) 12:19:00 ID:aiHSnYNz.net] google colabでcuda使いたい。 良い方法ある?
214 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 12:39:20.78 ID:L4tB3bvp.net] 金払ってないのか?
215 名前:デフォルトの名無しさん [2022/07/11(月) 14:48:46.26 ID:aiHSnYNz.net] >>210 colabはdjangoやfraskができないっぽいからやってない。 もしdjangoが使えるならお勧めあったら教えてほしいっす! vsかチャームか、atomか・・・。
216 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 15:51:00.64 ID:EGP2A4JX.net] 好きなテキストエディタないの?それで基本いいんだけど 拘りないなら拡張とユーザ数からvscodeでいいんじゃない PyCharmはリファクタまわりが優れているけど必須じゃないし Atomはオワコン
217 名前:デフォルトの名無しさん mailto:sage [2022/07/11(月) 17:35:44.11 ID:rDGcpouH.net] vsもマイクロソフト以外のプラグインが信用出来ないからあまり良いとは言えないかなー
218 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 00:04:57.18 ID:eIaiUALg.net] 文字列〜〜〜ID123456.text みたいなファイルからID123456だけを抜き出したいんだけど、どんな方法がある? IDの後には必ず数字がきて、桁数はかならず6
219 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 00:06:23.62 ID:eIaiUALg.net] 補足 IDが書かれてる場所はファイルによって異なる 文字列〜〜〜ID123456文字列〜.text ID123456文字列〜〜〜.text みたいなときもある
220 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 02:57:47 ID:yBYukR5V.net] >>214 普通は正規表現でも使うのかな 俺は正規表現使えないからこう書く from pathlib import Path p="C:\abc\あいうID1234567XYZ.text" print("ID" + Path(p).stem.split("ID")[1][:6])
221 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 08:19:17.52 ID:hTnf4I/y.net] >>215 正規表現を制する者は文字列を制する、他の言語でも仕様はほぼ同じ、覚えて損は無し >>>import re >>>s='''文字列〜〜〜ID123456文字列〜.text ・・・ID789012文字列〜〜〜.text ・・・みたいなときもある''' >>>re.findall(r'ID\d{6}', s) ['ID123456
222 名前:', 'ID789012'] [] [ここ壊れてます]
223 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 10:53:36 ID:eIaiUALg.net] >>216 >>217 ありがとうございます、勉強になります
224 名前:デフォルトの名無しさん [2022/07/12(火) 20:48:55 ID:gRW1mfOh.net] 例外処理ってどう使えばいいんだろ スクレイピングしてあるサイトのデータ拾いに行って ”データ”がある場合に代入となるんだけど 拾いに行くページによって、その行自体がなくてエラーになってしまうんだよな if Data[0][0] == ”データ”: s = Data[0][0] Data[0][0]がそもそも存在しない時にエラーにならないよう例外処理を使うといい、ぐらいまでは調べたんだけど 書き方がよくわからない
225 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 21:11:11 ID:hTnf4I/y.net] >>218 より具体的な例としてC:/hogehogeディレクトリ内の全ファイルのファイル名からIDを抜き出します >>>import pathlib, re >>>src = pathlib.Path('C:/hogehoge') >>>list(src.glob('*')) #ファイル確認、この例ではディレクトリ内にファイルが2つあります [WindowsPath('C:/hogehoge/ID789012文字列〜〜〜.text'), WindowsPath('C:/hogehoge/文字列〜〜〜ID123456文字列〜.text')] # 以下、ID抜き出し処理 >>>l = [re.findall(r'ID\d{6}', f.name) for f in src.glob('*')] >>>l [['ID789012'], ['ID123456']] >>>sum(l, []) #フラット化 ['ID789012', 'ID123456']
226 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 21:56:43.39 ID:UQgGu1pu.net] >>219 データがなかった場合にどう処理したいのかによって 例外処理にするのかif-elseみたいな分岐処理にするのかを選択する スクレイピングの場合は対象データがなかったら 何も処理しないとか空文字とかのデフォルト値を入れる場合が多いんだけどそのやり方もいろいろ if-elseで簡易的な関数にした例 def extract(html, selector, fn, default=""): return fn(element) if (element := html.select_one(selector)) else default def extract_text(html, selector, default=""): return extract(html, selector, lambda x: x.text.strip(), default) def extract_link(html, selector, default=""): return extract(html, selector, lambda x: x.get('href'), default)
227 名前:デフォルトの名無しさん mailto:sage [2022/07/12(火) 22:40:42.84 ID:xLkMA/UK.net] >>219 スクレイピングでたとえると 途中の要素が取得できないと結局な結果が得られないのでその場でプログラム終了する とすると、取得失敗の都度ifでsys.exit()と書けはする ここで終了前になにかメッセージ出力したり上位の関数にエラーで戻ったりアレコレしたいとすると 共通化したくなり例外以外では見通しが悪く書きにくい そういうのもうまく関数設計すれば書けはするけど Pythonは標準の操作(Data[0][0] とか)で例外あげる場面が多いので例外に寄せる方が楽
228 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 20:23:40.86 ID:EtP8dxEe.net] Pythonのトップ・キノコードがキノクエストと言う、Pythonの学習サービスを作った!
229 名前:デフォルトの名無しさん [2022/07/13(水) 22:27:14.03 ID:XjBOe/Qa.net] s = ’aaa bbb ccc ddd’ という文字列を s = ’[aaa],[bbb],[ccc],[ddd]’ という文字列にする方法って s.split() で一度リストにして for文内で新しいリストにappendとか使って [ や ] や , をリストの要素として追加して そのリストをまた文字列に戻すって方法しか思いつかないんだけど、他にあるかな?
230 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 22:38:12.38 ID:ZiN6uKeA.net] >>224 s = '[' + s.replace(' ', '],[') + ']'
231 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 22:42:11.0
] [ここ壊れてます]
232 名前:0 ID:tPrODk9K.net mailto: s='[' + s.replace(' ',']',[') + ']' これでいけんか? [] [ここ壊れてます]
233 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 22:43:26.48 ID:tPrODk9K.net] かぶったし打ち間違いあるしスマホでコード書くの合わないな…
234 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 22:44:17.92 ID:hJXXd+YV.net] “,”.join(map(lambda x:f”[{x}]”, s.split(“ “))) そらで書いてるから動くか分からんが、こんな感じ
235 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 22:46:15.33 ID:tPrODk9K.net] あと方法としてはjoin使うのとリストをそのまま文字列にするのができる気がする
236 名前:デフォルトの名無しさん [2022/07/13(水) 22:53:13.90 ID:XjBOe/Qa.net] >>225-229 マジか 思いつかなかった
237 名前:デフォルトの名無しさん mailto:sage [2022/07/13(水) 23:08:11.77 ID:Hjnw35/j.net] 教科書的に書くとつまらんな ','.join(f'[{x}]' for x in s.split(' '))
238 名前:デフォルトの名無しさん [2022/07/14(木) 10:16:40.49 ID:dxotV0yq.net] くだらんすれ
239 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 11:38:32.14 ID:3XfxOzel.net] python使い始めて何年も経つが ‘,’.join(…)書くたびにクソコード書いてんなと思う
240 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 12:12:10.59 ID:mZF8rPll.net] >>233 よく言われるけど、私はPythonスタイルが好きだな 文字列にするのだから文字列のメソッドであるべき ちゃんと議論されてRubyスタイルは否定されてんだよね ttps://www.lifewithpython.com/2017/07/why-python-join-is-string-method.html
241 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 16:24:53.41 ID:NrPRW2+E.net] >>234 読んだけど結構乱暴な議論だな > 文字列にするのだから文字列のメソッドであるべき 数字かどうかを判定するisdigit()をboolのメソッドにしろってか?w
242 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 16:42:14.94 ID:VCUQdsgR.net] >>234 じゃsplitはリストにするのだからリストのメソッドであるべきだなw ちゃんと議論ww
243 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 17:24:02.64 ID:TABkZ95a.net] Pythonって何故だかこういうエクストリームな擁護者が他言語に比べて多いんだよなぁ どの言語にも良い点悪い点はあるのになんでなんだろ?
244 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 17:57:33.90 ID:mZF8rPll.net] エクストリームな擁護ならRubyの右に出るものはないよ 「日本人ならRuby」「楽しいからRuby」だもん、初めて聞いた時は寒気がしたね RubyじゃなくてPython選んでマジで良かった、Python最高! joinもsplitの話ももう出尽くしているから、勝手にググってフンガーって発狂しててよ 私に言われても困っちゃうし、公式で結論出ているのだからそれで理解できないなら素養が無いよ
245 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 18:15:53.09 ID:ObgbLbGZ.net] あ~あ、みんな寄ってたかって叩くからファビョっちゃったじゃん
246 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 18:18:53.53 ID:ATT2arO1.net] >>237 pythonのスレ(しかも超初心者用)で言うことですか?
247 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 18:40:20.64 ID:NYmoorKP.net] 超初心者に変な常識を植え付けないように色んな意見のレスがあっていいと思うよ 変だと思う人も居るんだなということを知ってて損は無い 超初心者だと他言語における常識を知る機会も無いし
248 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 19:04:20.42 ID:ji0JpZgM.net] >>238 > 私に言われても困っちゃうし これお前の意見だろ? > 文字列にするのだから文字列のメソッドであるべき リンク先も公式もそんなアホなことを言ってないぞw
249 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 19:09:23.50 ID:mZF8rPll.net] >>242 ひゃーファビョッちゃってるぅーw 素養も読解力も無いことをアピールされましても困りますw
250 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 19:51:42.67 ID:/4X/rYOa.net] >>243 レスするならちゃんと反論したら? 読解力ガーとか低脳が顔真っ赤になりながらレスしても虚しいだけだろw
251 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木)
] [ここ壊れてます]
252 名前:20:59:57.30 ID:jjxIhgjT.net mailto: スレ違い自演連投荒らしが誰何に反応して身元確定したので新スレで書き込み禁止されたのを「いじめ」だと言い出す被害妄想っぷりが狂人クオリティ [] [ここ壊れてます]
253 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 21:03:26.05 ID:mZF8rPll.net] >>244 IDコロコロ変えるコロ助が何をファビョってんの?w もう>>238 で終了してんだよ、公式読んで理解できないなら反論も糞も無いじゃんw 認めたくないだろうけど、そこは認めようよ、君は低能だから理解できなわけよww 別に理解できなくてもいいじゃん、joinって変だな、何でなんだろう?ってずーっとファビョってればいいじゃん こういう経緯でこうなってんだよってリンクまで貼ってんのに、それで理解できずにそんなことなーい!って 言われてもさ、公式に文句言えばいいじゃん、ほんと低能だなぁーw 何と戦ってんの?w
254 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 21:41:30 ID:1UfgY23j.net] >>246 どっちが読解力ないだか... もう一度書いとくね、 > これお前の意見だろ? >> 文字列にするのだから文字列のメソッドであるべき 公式もリンク先も関係なくお前がアホなだけw
255 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 21:53:51.76 ID:GadqcTvG.net] これ読むと>>237 に同意せざるを得ないな https://stackoverflow.com/questions/493819/
256 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 22:25:47.47 ID:mZF8rPll.net] >>247 うん?じゃあ文字列のメソッドでなくてもいいの? どーやったらそう読めるんだよwwwwバーーカwww
257 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 22:56:25.17 ID:vHzneFGJ.net] >>249 まだ恥の上塗りするのかよw 「文字列にするのだから」がアホだって話な >>235-236 のツッコミみたら普通わかるだろ
258 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 23:02:08.05 ID:53iLOIJP.net] わざと馬鹿のフリしてんのかな?どっちにしても馬鹿にしか見えないが。
259 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 23:02:36.06 ID:pmXXTX87.net] 読んだけどseqは引数な方が良いってだけで > 文字列にするのだから文字列のメソッドであるべき こんなこと書いてない
260 名前:デフォルトの名無しさん mailto:sage [2022/07/14(木) 23:04:03.42 ID:mZF8rPll.net] >>250 君が読解力無いのは分かったから、それよりIDコロコロ変えているのバレちゃったねw >>247 の「もう一度書くね」でヘマしちゃったのはやっぱりファビョってるからなの?ww これ全部オマエだろ、何連投してんだよw顔真っ赤なのどっちだよって話だよ いやー自作自演バカって本当にいるんだなぁー アホなりに頑張ってるのは分かるけど低能だから 全部台無しだわぁ〜ww アホだからすぐバレちゃうwww そのIDコロコロ変えるようになった経緯を思い出せよ、まともにやるとすぐ負けちゃうからだろ? 自作自演で勝ってる感が欲しかったけど、それも手に入りませんでしたぁ〜w 恥の上塗りって 自分のこと言ってんのかよww 全部ブーメラン!おまえは民主党かよってw
261 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 01:28:28 ID:wi0x7exo.net] すごいチー牛顔引き攣らせて笑ってそう
262 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 03:30:42.52 ID:MdZ2tfzQ.net] >>253 とうとう壊れちゃったw
263 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 07:32:09 ID:mXh/FC5X.net] なんかこわい
264 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 12:20:14.72 ID:Y2OiW31R.net] こんな人生終わってそうな社会不適合者でも稼げちゃうのがIT業界なんだよな 人生終わってそうな外見のやつばかりなのに、金が稼げるからジョーカーみたいなのが生まれにくい
265 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 14:11:44.43 ID:78D2/2K4.net] iterableを定義してそこにjoinメソッドを追加するだけでよかったのにね joinメソッドは今どきこんな設計する人がいたらすぐ外されても文句言えないレベル
266 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 14:28:12.17 ID:MVHCgXBf.net] 当人ちゃうけどまず >>234 のリンク先読んどこう
267 名前:デフォルトの名無しさん mailto:sage [2022/07/15(金) 15:21:03.77 ID:cpkuMkfN.net] 俺も当人ちゃうけどそのリンク先読んでも>>258 に同意するわ
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は変数) この文を削除するとものすごく早くなります どうすれば早くなりますか?