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


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

Pythonのお勉強 Part54



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/

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))""")

996 名前:雪風,遊園地 mailto:sage [2017/12/21(木) 00:52:50.09 ID:1OazE8Sd.net]
>>973
import re
l=['I']
r=['ABCDEFGHIJKLMNOPQRSTUVWXYZ']
#[print (match.group()) for match in re.finditer(l[0],r[0])]

for match in re.finditer(l[0],r[0]):
____print (match.group())


ゆっきーは、頭が可笑しいので他の人に聞いて下さい。

997 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 00:54:34.31 ID:1OazE8Sd.net]
部分一致は正規表現しか思いつかない。

998 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 00:54:55.56 ID:sOyGlBrQ.net]
>973
リスト内の要素を部分一致で検索する、というのが曖昧な表現なので、具体例で説明して欲しい
["abc", "bcd", "xyz"]
があった時に、
"bc"を検索して、
["abc", "bcd"]
を返すような関数を作りたいの?

[1, 2, 3]と[2, 3, 4]と[9, 5, 19, 7, 9] があった時に、
[0, 1, 2, 3] を検索して、
[1, 2, 3] と[2, 3, 4] を返すような関数を作りたいの?



999 名前:雪風,遊園地 mailto:sage [2017/12/21(木) 01:06:20.96 ID:1OazE8Sd.net]
>>977
個人的に両方 欲しいです。

1000 名前:雪風,遊園地 mailto:sage [2017/12/21(木) 02:43:34.99 ID:1OazE8Sd.net]
どうして、誰も作ってくれないのか?

 https://ideone.com/VOrwu8

1001 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 05:16:27.79 ID:tu5xSbQ7.net]
>>979
結構やってること滅茶苦茶だねw

1002 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 08:50:58.63 ID:NvhGrRKb.net]
>>973, >>978
>>> list_1 = ["abc", "bcd", "xyz"]
>>> list_2 = [[1,2,3], [2,3,4], [9,5,19,7,9]]
>>>
>>> import re
>>> [i for i in list_1 if re.search(r'bc', i)]
['abc', 'bcd']
>>>
>>> [i for i in list_2 if all(j in [0,1,2,3,4] for j in i)]
[[1, 2, 3], [2, 3, 4]]
>>>

1003 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 08:52:28.59 ID:NvhGrRKb.net]
>>> [i for i in list_2 if any(j in [0,1,2,3] for j in i)]
[[1, 2, 3], [2, 3, 4]]
>>>

1004 名前:雪風,遊園地 mailto:sage [2017/12/21(木) 10:03:44.67 ID:1OazE8Sd.net]
>>981
>>982
こっちの方がシンプルで良いですね。
ありがとうです ( ゚д゚ )クワッ!!

1005 名前:デフォルトの名無しさん [2017/12/21(木) 12:40:18.22 ID:MXajmGMH.net]
うんこしたいよー
もう漏れそうだ

1006 名前:デフォルトの名無しさん [2017/12/21(木) 21:48:50.35 ID:WjYU61tx.net]
Pythonってプログラミング言語として難しいほう?

1007 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:52:19.91 ID:788cmMG6.net]
とても簡単なほう

1008 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:53:39.57 ID:MavrGicq.net]
簡単というか平易



1009 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 22:08:16.93 ID:812iswiX.net]
平易というか簡単

1010 名前:デフォルトの名無しさん [2017/12/22(金) 00:45:25.25 ID:7leJrkq3.net]
言語だけでも自分の3割り増しの実力のプログラムが作れる感じのノリが好き

1011 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 04:10:33.70 ID:pVzUn8R6.net]
動作
トランプデッキから5枚引いて、引いたカードをデッキから削除
手持ちのカードのマークをカウントする


もっと、スタイリッシュに書き直してくれる人居ませんか?

 https://ideone.com/0bukfh

1012 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 05:39:58.07 ID:RZt5N+k9.net]
スペードの1〜13・ハートの1〜13・クローバーの1〜13・ダイアの1〜13の順で、
1〜52のカードID をつけているから、

カードID を13で割って、その商と余りで、スートと数がわかる

1013 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 10:33:03.12 ID:RZt5N+k9.net]
def suit_and_number (card_id)
suit = card_id / 13
num = card_id % 13

if num == 0 then
num = 13
suit -= 1
end
return suit, num
end

ary = (1..52).to_a.shuffle!

(0..10).each do |i|
suit, num = suit_and_number (ary[i])
puts "id : #{ary[i]}, suit : #{suit}, num : #{num}"
end

Ruby でやった
https://paiza.io/projects/sJs_Ge5be9uq44J6SHoJdw

結果を並び替えたもの
id : 1, suit : 0, num : 1
id : 14, suit : 1, num : 1
id : 27, suit : 2, num : 1
id : 40, suit : 3, num : 1

id : 13, suit : 0, num : 13
id : 26, suit : 1, num : 13
id : 39, suit : 2, num : 13
id : 52, suit : 3, num : 13

1014 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 11:00:21.87 ID:2CqGXpCv.net]
>>992
わざわざ通し番号から数字やスートを算出している合理性がない
テクニカルな雰囲気な方法を思い付いて嬉しいのはわかるが、効率が悪く分かりにくいだけだから素直に別々に分けなさい

1015 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 11:08:48.16 ID:u2VnRzIy.net]
>>998
イッツ スタイリッシュ
https://ideone.com/8wE3TR

1016 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 11:09:46.97 ID:u2VnRzIy.net]
>>990
イッツ スタイリッシュ
https://ideone.com/8wE3TR

1017 名前:990 mailto:sage [2017/12/22(金) 12:03:54.91 ID:RZt5N+k9.net]
>>993
カードクラスを作って、インスタンス毎に、カードの画像を持たせたりしても良いけど、
インスタンス毎に、スート・数を持たせるのは、メモリの無駄だろ

ID から簡単に計算できるのだから、それらを計算値で返しても良いのじゃないか?

1018 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 12:09:53.68 ID:u7gWVCbQ.net]
普通は「わかりやすい」が正義だな



1019 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 12:42:42.17 ID:cZv5wUGB.net]
画像はflyweightになるだろ。
いちいちコピーすんのか?

1020 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 12:46:03.11 ID:sp7ymsVp.net]
>>996
> インスタンス毎に、スート・数を持たせるのは、メモリの無駄だろ
おじいさま今時はそう言うことを気にしなくてもよくなったのよ

1021 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 13:33:46.30 ID:u2VnRzIy.net]
ふぅー 落ち着いたか、、大興奮・・あれ? ワイのもイジれや、ワイのもイジれや

1022 名前:988 mailto:sage [2017/12/22(金) 14:02:56.88 ID:pVzUn8R6.net]
テラテイルでも聞いて来ましたが、色々有るようです。

 https://ideone.com/Mg9oG7

次スレは>>1000が建てて下さい。

1023 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 14:21:38.28 ID:8mUBEZUB.net]
>>1001
何故たてぬ

次スレ
mevius.5ch.net/test/read.cgi/tech/1513919747/

1024 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 111日 21時間 36分 51秒

1025 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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