1 名前:デフォルトの名無しさん [2017/09/01(金) 16:44:47.30 ID:igIE9hK/.net] Pythonオフィシャルサイト www.python.org/ テンプレ等は2以降で ■前スレ Pythonのお勉強 Part53 mevius.2ch.net/test/read.cgi/tech/1494683284/
895 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 19:35:28.14 ID:X0jO0ehF.net] >>872 01-03の関数を大きな関数の中で呼び出して、btn.OnClick.Add() にはその大きな関数を渡せばいいんじゃないの
896 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 17:35:34.94 ID:snQTRBXR.net] >>873 えー226cmもあったんか!
897 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 18:31:20.18 ID:ehF4QImV.net] お構いなしに型変換して同じ変数にぶち込むスタイルのコーディングがいつまで経っても慣れんわ
898 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 19:24:56.33 ID:SQd1OlWL.net] 型はオブジェクト自身が持っている、変数は指しているだけ
899 名前:デフォルトの名無しさん [2017/12/14(木) 19:32:40.08 ID:oezENCsV.net] >>877 おまえ関数型勢に消されんぞ
900 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 19:56:37.07 ID:rn0SmpIP.net] 自分も変数なるべく使いまわしてるんだけどこれ速度と可読性の観点でどうなの?
901 名前:デフォルトの名無しさん [2017/12/14(木) 20:48:58.99 ID:vpKUBjgx.net] df何度も上書きして使いまわし
902 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 20:50:22.64 ID:2ncS4bon.net] Python使ってて小手先の最適化を気にしてる時点で馬鹿に分類されるよ
903 名前:デフォルトの名無しさん [2017/12/15(金) 00:17:15.09 ID:yw8gSH0I.net] for文をなるだけ使わないってのは速度の点で重要だけど 素直にc++なりで書いた方が慣れないうちは楽だなと思ったり
904 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 08:35:30.91 ID:qJ6ESGNh.net] >>882 お前が一番アホっぽいけどな
905 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 09:28:51.61 ID:llbK5PGi.net] 12時間頑張ってそれは草 まあ、ママは誉めてくれるんじゃね… よかったね
906 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 10:26:39.92 ID:c/LOcSA5.net] >>882 馬鹿そう
907 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 11:08:31.56 ID:Z44X65Q/.net] >>873 少し使ってみたけどデータはpandasよりも格段に見やすい データ抽出はpandasのqueryの方が簡潔で分かりやすい、csv_normalは冗長的だがPythonに慣れてる人はこっちでもいいかも データを枠で囲む機能はまあまあ気に入った 感想はこんな感じかな、なかなか良い出来だと思うよグラフ化することが無いならこっち使ってもいいかもな
908 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 14:57:01.36 ID:jrk+Uh93.net] いやいや変数の使い回しなんて小手先すぎるだろ… 勿論、コマ落ち防止でgc発生を絶対抑止しないといけないとか、変数使い回しが必要な場面もあるけどさ。 あえて書くまでもないことだけど、pythonに限らず、変数を使いまわして可読性メンテナンス性を下げるより、アルゴリズムを変えることを検討した方がいい
909 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 12:35:46.84 ID:2+3GS8kh.net] 使いまわす方が可読性が向上することもある
910 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 12:42:02.59 ID:LkzTWqEe.net] 可読性なんて所詮オナニーですよ
911 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 13:18:54.64 ID:9Fve7Q6b.net] 変数を使い回すということは、前のデータはいらないってこと、そして前のデータと意味は同じってこと baka = >>877 baka.ng() baka = >>888 baka.ng()
912 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 13:54:20.53 ID:MCFqyxDm.net] 変数使いまわさないと 事実上変数のスコープがずっと続いて読みづらいことある
913 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 13:56:22.78 ID:tthKlmuc.net] >>891 例えば"aの色"という変数があって、aの色が変わったのなら、当然もとの"aの色"変数に格納する。 これをそもそも使いまわしと言わない。 意味が違うのにデータがいらないという理由で使いまわしてるのなら話にならない。 >>889 何だって例外はあると思うよ。
914 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 14:08:56.31 ID:ZGZeB1Qj.net] どっちでも、バグ無く動けばいいという考え方じゃ駄目なん?
915 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 14:11:35.48 ID:MCFqyxDm.net] 規約という鎖で自分を縛って喜んでるのがたくさんいるんだ
916 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 14:15:44.99 ID:2+3GS8kh.net] >>893 設計思想によっては例外という割合ではない
917 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 14:18:48.89 ID:2+3GS8kh.net] >>894 ある程度の一貫性は欲しいかな
918 名前:ッじソースの部分部分で違うと読み間違えたり [] [ここ壊れてます]
919 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 14:28:57.77 ID:ttAmpR9c.net] オヌヌメのPython本は?
920 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 14:49:36.51 ID:9Fve7Q6b.net] >>893 せっかくbakaを例に出してんのに例を例で被せてくんなよバカ オマエの例でいえばbakaは"色"という変数だマヌケ "色"にaの色を格納して、いらなくなったから"色"にbの色を入れてんの そして色という意味は同じわけ、bakaの例みれば分かるだろ
921 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:35:32.16 ID:9Fve7Q6b.net] ちっ、せっかくカウンター用意してたのに噛みついてこいやぁ!! つまり変数の使い回しというのはfor文の変数だ for baka in (>>878 , >>888 , >>893 ): baka.ng() はい、論破ァーww
922 名前:デフォルトの名無しさん [2017/12/16(土) 18:30:11.61 ID:PKDI5VWV.net] 最近勉強始めたばっかの初心者なんだけど質問すまん これの下の方の二つの input って誤植だよね? 正しくは print であってる? imgur.com/fy1mnRS.jpg
923 名前:デフォルトの名無しさん [2017/12/16(土) 19:53:43.43 ID:PDgCh/4m.net] >>901 このコードをそのまま実行した場合と 該当箇所の input を print に書き換えて実行した場合を比較すればわかるけど 「そういう動作」を狙って著者さんがこう書いただけだと思う 初心者向けのサンプルプログラム以外で、こういう input() の使い方ってしないと思うけどね 出版社に問い合わせても図書カードとかはもらえなさそう
924 名前:デフォルトの名無しさん [2017/12/16(土) 19:58:38.21 ID:rq6V2ypo.net] kbhit()だな
925 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 22:39:15.57 ID:ArLhqftT.net] >>898 「みんなのPython 第4版、2017」が定本
926 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 22:44:27.43 ID:Q3oWoFk+.net] >>904 thx
927 名前:デフォルトの名無しさん mailto:age [2017/12/17(日) 00:11:06.04 ID:OP5LAhHm.net] 同じidなら結合して出力したい。 l=[['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']] 求める結果 id0 python id1 aiueo
928 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 00:12:07.62 ID:OP5LAhHm.net] おねがいします m(_ _;)m
929 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 00:31:52.24 ID:noPwurno.net] ttp://www.oreilly.co.jp/books/images/picture_large978-4-87311-778-2.jpeg
930 名前:デフォルトの名無しさん [2017/12/17(日) 00:56:13.28 ID:OP5LAhHm.net] coord = {'latitude': '37.24N', 'longitude': '-115.81W'} A01='Coordinates: {latitude}, {longitude}'.format(**coord) print(A01)
931 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 00:57:29.44 ID:/cDASRuF.net] グラフ描画はやっぱりseabornですかね? 他にお勧めのふつくしいパッケージあったら教えてください
932 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 01:01:08.99 ID:NZGyS71f.net] ary = [['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']] hash = {} ary.each_with_object(hash) do |(key, value), hash| if hash[key] hash[key] += value else hash[key] = value end end p hash #=> {"id0"=>"python", "id1"=>"aiueo"} Ruby で書いた https://paiza.io/projects/bbOPs6qzVV-5PLOrQ545IA
933 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 01:18:33.54 ID:mJFfsWjk.net] >>908 英語良ければ無料で公開されているこちらをどうぞ https://automatetheboringstuff.com/
934 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 06:37:55.25 ID:nW0iFIyL.net] >906 defaultdict 使うと楽だよ。 import collections l=[['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']] dic = collections.defaultdict(str) for k, v in l: dic[k] += v for k, v in dic.items(): print(k, v)
935 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 08:24:35.52 ID:VH1yLn0n.net] import seaborn as sns これ何でsnsにするの? sbが適当じゃない?? seaborn調べると皆snsにしている
936 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:08:28.09 ID:nW0iFIyL.net] Samuel Norman Seaborn っていう架空の人物が登場するテレビドラマがあって、それに掛けたジョークらしいよ
937 名前:904 mailto:sage [2017/12/17(日) 12:36:13.88 ID:OP5LAhHm.net] >>913 助かりました。ありがとうございます。
938 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 15:29:30.91 ID:mJFfsWjk.net] >>915 それ、昔NHKでもやってたの見てたわ
939 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 15:46:51.80 ID:VH1yLn0n.net] >>915 サンクス シャレてるからワイもsnsにするでぇー
940 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 16:00:03.29 ID:/cDASRuF.net] あれ?やっぱりみんなseabornなの? 他にあれば知りたい
941 名前:デフォルトの名無しさん [2017/12/17(日) 16:25:27.84 ID:GUabbIAG.net] プログラム初心者なんだけど質問第2すまん pip installについてなんだけど 教本通りにQRコードを生成するパッケージをインストールしたいんで pip install pillow qrcodeって入力したら Collecting pillow って出てきてずっと固まってる 時間経てばインストールし終わる?
942 名前:デフォルトの名無しさん [2017/12/17(日) 16:32:17.61 ID:XxtCNzg/.net] バージョンは
943 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 16:42:51.96 ID:VH1yLn0n.net] Windowsならコマンドプロンプトを起動するときに右クリック→"管理者として実行" で起動しないとpip install失敗するよん
944 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 16:45:46.85 ID:DptJao3l.net] requirements.txt と Pipfile のどちらを使うべき?
945 名前:デフォルトの名無しさん [2017/12/17(日) 17:01:02.18 ID:GUabbIAG.net] Microsoft Windows[Version 6.0.6002]って書いてある 管理者として実行も試してみたんだけどCollecting pillowから進まない うーん何か足りないんかな
946 名前:デフォルトの名無しさん [2017/12/17(日) 17:21:26.29 ID:XxtCNzg/.net] どっちにしろおま環だから何とも言えんが pillowがだめでもPIL入れてればいけるんじゃね
947 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 17:35:08.16 ID:VH1yLn0n.net] pip install pillow qrcode でインストールできたでぇー、QRコードも生成できた pythonのバージョンは3.6.1 pipのバージョンは9.0.1 Pillow(4.0.0)インストール済み
948 名前:デフォルトの名無しさん [2017/12/17(日) 18:12:47.56 ID:GUabbIAG.net] 解決した! 恥ずかしくて言えないくらい初歩的なミスだった…… すまん、ありがとうございました
949 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 18:56:07.30 ID:VH1yLn0n.net] csv_normal.pyがバージョン2.7.7にバージョンアップしたよ(https://ux.getuploader.com/codes/download/7) もう追加機能も思いつかないので、たぶんこれがファイナルバージョンとなるよ Version: 2.7.7 ・使用例の説明を改善 ・冗長性の改善(>>887 のご指摘を受けて) ・冗長な関数名、メソッド名、引数名などを簡潔に改名 ・ヘッダー情報を更に便利に簡単にアクセスできるように改善 ・メソッド追加 ・shapeメソッド - 行列のサイズを表示(pandasからパクった) ・print2メソッド - printメソッドよりさらに見やすい(罫線で囲むから) ・inquire_field_valueメソッド(>>906 もこれで解決) などなど あとがき: csv_normalは配列を配列のまま扱うことでPythonの強力な配列操作をそのまま利用でき 簡潔で直感的、習得も簡単ですぐに使用できる優れたモジュールとなりました 特にデータを罫線で囲んで表示する機能は秀逸で他に類をみない可読性を提供します これはpandas越えたわ・・ 👀 Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
950 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 19:11:04.86 ID:VH1yLn0n.net] >>873 csv_normal.pyがバージョン2.7.7にバージョンアップしたよ(https://ux.getuploader.com/codes/download/7) もう追加機能も思いつかないので、たぶんこれがファイナルバージョンとなるよ Version: 2.7.7 ・使用例の説明を改善 ・冗長性の改善(>>887 のご指摘を受けて) ・冗長な関数名、メソッド名、引数名などを簡潔に改名 ・ヘッダー情報を更に便利に簡単にアクセスできるように改善 ・メソッド追加 ・shapeメソッド - 行列のサイズを表示(pandasからパクった) ・print2メソッド - printメソッドよりさらに見やすい(罫線で囲むから) ・inquire_field_valueメソッド(>>906 もこれで解決) などなど あとがき: csv_normalは配列を配列のまま扱うことでPythonの強力な配列操作をそのまま利用でき 簡潔で直感的、習得も簡単ですぐに使用できる優れたモジュールとなりました 特にデータを罫線で囲んで表示する機能は秀逸で他に類をみない可読性を提供します これはpandas越えたわ・・ 👀 Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
951 名前:デフォルトの名無しさん [2017/12/17(日) 19:17:52.67 ID:XxtCNzg/.net] test なんか専ブラの動きが変だな また仕様かわったか
952 名前:デフォルトの名無しさん [2017/12/18(月) 10:05:45.20 ID:vfjnbjyE.net] ライブラリをインストールしてチュートリアルのプログラムを一通り動かすまでに結構時間を消費しちゃう バージョンによってチュートリアルを結構改変しないと動かないのが多いし 魅力的なライブラリが多いけどそこまで直ぐに使えるようにはならないと思いましたまる
953 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 10:44:13.32 ID:qOhnl7Wk.net] バージョン変わる毎にメソッド名とかコロコロ変えすぎだよなRubyかよ
954 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 12:12:04.90 ID:AybSMTWc.net] 改変したチュートリアルをアップでアフリエイトがはかどるな
955 名前:デフォルトの名無しさん [2017/12/18(月) 12:30:50.45 ID:MRRIpNjB.net] >>911 どうせ書くなら、組み込みメソッドの Enumerable#inject と Hash#merge を 使った関数型プログラミングのスタイルが Ruby らしいのではないかと思われ https://ideone.com/v02Ldy for文のループをゴリゴリ回す手続き型プログラミングのスタイル(>>913 )とは対照的だね
956 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 13:49:20.75 ID:qOhnl7Wk.net] l=[['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']] from itertools import groupby for r in [(k, ''.join([item[1] for item in i])) for k,i in groupby(l, key=lambda x:x[0])]: print(*r) はい、オレが優勝
957 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 13:54:52.52 ID:kA+4TLLO.net] operator.itemgetterくらい使え
958 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 14:15:11.80 ID:qOhnl7Wk.net] ┐(´- ` )┌ ハッ、イテレータが欲しいのだよ、これだからググっただけの奴はw
959 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 14:23:14.65 ID:kA+4TLLO.net] それはひょっとしてギャグで言ってるのか!?
960 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 14:32:10.96 ID:qOhnl7Wk.net] あ、これ何も考えてない奴の常套句だわ 回答書けないならレス汚さないでくれる?
961 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 14:50:33.65 ID:kA+4TLLO.net] え?真面目に言ってるの?どのみちイテレータ返るでしょ、ジェネレータを言ってるにしてもジェネレータ式はないし リストが欲しいというならギリギリ分からなくもないが、それでもコールバックを与えるgroupbyには関係ないよね
962 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 15:01:14.41 ID:qOhnl7Wk.net] ブヒョヒョヒョヒョッw operator.itemgetter使った例書いてみろよバーカ オレのより良くなるわけねーんだよバーカ 知ったかバカがww
963 名前:デフォルトの名無しさん [2017/12/18(月) 15:03:03.28 ID:ucgqtJiU.net] 流れぶった切って初心者の質問3つめすまん pipで暗号化だかなんだかのパッケージをインストールするのに pip install pycrypto って入力したんだがエラーになった 赤文字が言うにはimport setuptools,tokenize;_ file_ってことらしい(たぶん)んだけどどうすればいい?パソコン自体にも明るくないんで初歩的な質問だったらすまん
964 名前:デフォルトの名無しさん [2017/12/18(月) 15:04:12.98 ID:ucgqtJiU.net] Anacondaってのはインストールした たぶん出来てると思う
965 名前:デフォルトの名無しさん [2017/12/18(月) 15:15:46.03 ID:iOib+Cu3.net] >>913 >>935 そのまま、ソートできたりしますか?
966 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 15:29:33.59 ID:qOhnl7Wk.net] マジで君の葛藤 そんなに言うなら書いてやらぁ、import operator ・・はっ!? あいつのより一行増えちまうぅぅ・・operatorをimportするだけで負けちまうぅぅ どーすればいいんだあぁ マジで負けちまう、マジでマジでぇぇええ
967 名前:デフォルトの名無しさん [2017/12/18(月) 19:35:06.39 ID:uz+0MMm5.net] Scipy lecture notes は難しいなあ
968 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 20:23:19.81 ID:nEpzfrhn.net] >944 911 は、 lst = sorted(dic.items()) でキーの昇順のリストlstを作ることができるよ。
969 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 20:56:07.22 ID:ZPQd2a6K.net] >>912 英語読める人って憧れるわぁ 気が向けば、気力が続けば読破してみる♪
970 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:31:04.85 ID:80YjRLEJ.net] Excelに「Python」搭載検討 Microsoftがアンケート実施中 (ITmedia NEWS) [続きを読む]
971 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:31:19.95 ID:iOib+Cu3.net] >>947 なるほど。 どうもです。
972 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 22:41:16.62 ID:HvuqWaT5.net] >>949 matplotlibが使えるってことですかね。
973 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 22:50:47.06 ID:ORJoreTk.net] vbaで充分です
974 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:50:47.14 ID:DaMOUzIl.net] Microsoftの事だから、独自の実装てんこ盛りとかしそう
975 名前:デフォルトの名無しさん [2017/12/19(火) 01:50:12.54 ID:zg2/LW0i.net] 同じタブで開くにはどうしたら良いのでしょうか? 実行すると、同じウィンドウで開いてしまいます。 https://ideone.com/Rb3ecO
976 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 06:46:50.41 ID:eFD5MKDs.net] VB.NETかC#にすればいいのに
977 名前:デフォルトの名無しさん [2017/12/19(火) 07:05:30.29 ID:YlLsk3YD.net] Pythonでサーバー系の勉強をしたいんだけれども分かりやすい書籍知りませんか?
978 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 07:59:13.13 ID:LIEbtk9I.net] プロフェッショナルのやつ
979 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 08:36:34.83 ID:lTMrJ03e.net] >>955 俺もそう思ったけど、イミディエートウィンドでちょっと試しに実行したりするのはスクリプト言語の方がいいのかも スクリプト言語の中ではPythonは悪い選択じゃない
980 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 09:02:13.56 ID:I9cB5PBv.net] >>954 webbrowserのopen_new, open_new_tabは可能であれば新しいウィンドウ、新しいタブで開くという仕様 動作が同じということは不可能ということなのでsubprocessで直接ブラウザの実行ファイルを叩きましょう chromeなら(参考: ttps://blogs.yahoo.co.jp/kerupani/15783349.html) >>> import subprocess >>> open_new = [r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe', '--new-window'] >>> open_new_tab =[r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'] >>> url='https://ideone.com/Rb3ecO' >>> >>> subprocess.call(open_new + [url]) 0 >>> subprocess.call(open_new_tab + [url]) 0 >>>
981 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 11:38:37.78 ID:I9cB5PBv.net] >>906 >>> l = [['id0', 'pyt'], ['id0', 'hon'], ['id1', 'aiu'], ['id1', 'eo']] >>> for k,v in {id:[i[1] for i in l if i[0]==id] for id in dict(l).keys()}.items(): print(k, ''.join(v)) id0 python id1 aiueo >>> リストlをidの数ぶんなめるからdefaultdict版よりも遅いのかな?と心配でしたが爆速でした 内包表記爆速でした(https://ideone.com/CQmM0C)
982 名前:デフォルトの名無しさん [2017/12/19(火) 12:24:14.54 ID:R9z7S8/c.net] >>957 ありがとうございます Pythonプロフェッショナルプログラミング-第2版-株式会社ビープラウド ってやつでしょうか
983 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 13:40:41.77 ID:I9cB5PBv.net] >>960 もうちょっと速度評価してみた結果、idの種類が5で内包表記版とdefaultdict(list)版が同じくらいの処理速度になる idの種類が増える毎にdefaultdict(list)版の方が速くなる、defaultdictの方が優れているね、分かりやすいし Ruby版はどのくらい速いのかな? >>> l=[[f'id{i}', 'hoge'] for i in range(5)]*10000 >>> with get_time(): d = {id:[i[1] for i in l if i[0]==id] for id in dict(l).keys()} 0.014081239700317383 >>> with get_time(): d = defaultdict(list) for k,v in l: d[k].append(v) 0.014064788818359375 >>> >>> l=[[f'id{i}', 'hoge'] for i in range(50)]*10000 >>> with get_time(): d = {id:[i[1] for i in l if i[0]==id] for id in dict(l).keys()} 1.0660841464996338 >>> with get_time(): d = defaultdict(list) for k,v in l: d[k].append(v) 0.14391684532165527 >>>
984 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:15:34.47 ID:DaMOUzIl.net] >>898 これなんてどうかな? ttp://www.amazon.co.jp/gp/product/B074CZNCM9/
985 名前:952 mailto:sage [2017/12/20(水) 02:35:33.39 ID:TssXo4IA.net] >>959 遅れながら、ありがとうございます
986 名前:デフォルトの名無しさん [2017/12/20(水) 12:35:28.42 ID:TssXo4IA.net] こういう処理は一行で書けますか? for i in range(2): __if i==j: ____print('end') __for j in range(2): ____print(i,j,'',end='')
987 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 13:02:27.07 ID:oZWzOzRe.net] 2行目jが未定義でエラーになると思う
988 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 13:03:05.99 ID:NDzik5IP.net] 造作もなきこと!Pythonのテクニックを使えば多重ループを1行で書くことなど造作もなきこと! exec("""j=None\nfor i in range(2):\n if i==j:\n print('end')\n for j in range(2):\n print(i,j,'',end='')""")
989 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 13:05:58.39 ID:TssXo4IA.net] jは0と言う事でお願いします
990 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 13:15:05.63 ID:NDzik5IP.net] 空白が潰れちゃったよから\tに変更 exec("""j=0\nfor i in range(2):\n\tif i==j:\n\t\tprint('end')\n\tfor j in range(2):\n\t\tprint(i,j,'',end='')""")
991 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 14:07:50.11 ID:TssXo4IA.net] >>967 >>969 ありがとうございます。 exec("a = 5; b = 7; print(a+b)") と言う既述方法は知ってましたが、 制御分などの盛り込み方が不明だったので助かりました。 これで、制御分の横にコメント文を スペースで埋めて揃える作業をしなく良くなりました。
992 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 19:46:38.16 ID:SIAJ3GJG.net] インクリメントできないのがよくわからん
993 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 00:07:07.98 ID:d67IHLei.net] グラフ描画についてbokehとplotlyが気になるのですが,使っている方いらっしゃいますか?
994 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 00:17:01.47 ID:0vv650Fk.net] リスト内の要素を部分一致で検索したいのですが、どう書けば良いのでしょうか? 完全一致ならば上手くいくのですが…
995 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 00:33:32.51 ID:1OazE8Sd.net] # コメント コメント [[l.append(i) for i in range(1,6)] for j in range(int(input()))] exec("""print(l)\nfor i in l:\n\tif i==2:\n\t continue\n\tr.append(i)\nprint(i,'',end='')""") exec("""def Sample0(x):\n\treturn x**2\nfor i in r:\n\tprint(Sample0(i))""")