当スレに★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公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi
〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その53
https://mevius.5ch.net/test/read.cgi/tech/1615846784/
次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
探検
【まず1嫁】くだすれPython(超初心者用) その54
■ このスレッドは過去ログ倉庫に格納されています
2021/06/09(水) 21:05:44.61ID:zRBfpo4e
713デフォルトの名無しさん
2021/08/30(月) 17:48:48.11ID:7NK+aNuC configparserもヘナチョコいんよねえ
714デフォルトの名無しさん
2021/08/30(月) 22:43:34.34ID:30yuDIRz python2でpip等使わずlz4のデータ展開をする方法はありますか?
715デフォルトの名無しさん
2021/08/31(火) 00:05:53.27ID:2Z3a814f OSにliblz4があるか導入できるならctypesモジュールでいけんじゃない
716709
2021/08/31(火) 19:12:15.52ID:9YLyrvXT みなさんありがとうございます
pymemcacheが探してた答えのようです
>>712
自分の設計が悪いだけなのでしょうが、引数で持ち回ると全体的にコードが冗長になってしまい正解が分からなくなっていました
pymemcacheが探してた答えのようです
>>712
自分の設計が悪いだけなのでしょうが、引数で持ち回ると全体的にコードが冗長になってしまい正解が分からなくなっていました
717デフォルトの名無しさん
2021/08/31(火) 19:30:48.38ID:VFuuQVk7 グローバル変数的なものを格納するだけに使うつもりで、常に1つしかインスタンス化しないようなクラスは、全くインスタンス化せずクラス変数とクラスメソッドで使うというのもありですか?
インスタンス化してインスタンス格納用の変数を用意するのが面倒だなと思いまして。
インスタンス化してインスタンス格納用の変数を用意するのが面倒だなと思いまして。
718デフォルトの名無しさん
2021/08/31(火) 20:01:08.53ID:2Z3a814f mockで差し替えたり、初期化を遅延したりしないんならそれでもいいんじゃない
もし必要になったときに見直せばいい
といってもシングルトンの制御いれるだけなんだけどね
もし必要になったときに見直せばいい
といってもシングルトンの制御いれるだけなんだけどね
719デフォルトの名無しさん
2021/08/31(火) 21:31:36.81ID:1mws6K8n https://ideone.com/Xn6V4Y
1から10まで数え上げるプログラムで
total = 0をdefの上の行に移動するとエラーになります
>UnboundLocalError: local variable 'total' referenced before assignment
defの中からグローバル変数?は書き換えられないということですか?
あたま痛い
1から10まで数え上げるプログラムで
total = 0をdefの上の行に移動するとエラーになります
>UnboundLocalError: local variable 'total' referenced before assignment
defの中からグローバル変数?は書き換えられないということですか?
あたま痛い
720デフォルトの名無しさん
2021/08/31(火) 21:47:50.29ID:vXJ7Oc0W 複数行コメントアウトしたいとき
'''
print("hello")
'''
pass
という風にしますが、
解除したいとき変更箇所が2箇所あるのでちょっと面倒だと思いました
なので
#'''
print("hello")
#'''
pass
こうして、上部のみの#を付けたり消したりするだけで切り替えできるようにしてみたのですが
何か不測の事態とか起きるでしょうか?
'''
print("hello")
'''
pass
という風にしますが、
解除したいとき変更箇所が2箇所あるのでちょっと面倒だと思いました
なので
#'''
print("hello")
#'''
pass
こうして、上部のみの#を付けたり消したりするだけで切り替えできるようにしてみたのですが
何か不測の事態とか起きるでしょうか?
721デフォルトの名無しさん
2021/08/31(火) 21:48:09.84ID:vX6Y4w4T >>719
global total
global total
722デフォルトの名無しさん
2021/08/31(火) 21:53:19.20723デフォルトの名無しさん
2021/08/31(火) 23:25:58.49ID:7dGeW7mE >>719
Pythonの変数のスコープについて調べたほうがいいかもね
Pythonの変数のスコープについて調べたほうがいいかもね
724デフォルトの名無しさん
2021/08/31(火) 23:47:03.52ID:2Z3a814f725デフォルトの名無しさん
2021/09/01(水) 07:51:46.18ID:A3Q1UiDE twintってライブラリ使ったことある人おる?
自分のアカウントのすべてのツイートをスクレイピングしてきたいんだが、10日前くらいまでのツイートしかとれなくて困ってる
自分のアカウントのすべてのツイートをスクレイピングしてきたいんだが、10日前くらいまでのツイートしかとれなくて困ってる
726デフォルトの名無しさん
2021/09/01(水) 13:06:04.44ID:uLacWkrf727デフォルトの名無しさん
2021/09/01(水) 20:28:34.09ID:KwaoNT+v いちばん勢いあるPythonスレがこのスレで、この程度の勢いとか
Pythonほんとに人気あるの?
Pythonほんとに人気あるの?
728デフォルトの名無しさん
2021/09/01(水) 20:51:14.35ID:zw5pi55j ム板と言うか5ch自体が衰退メディアですし
729デフォルトの名無しさん
2021/09/01(水) 22:50:28.57ID:UppKED7J730デフォルトの名無しさん
2021/09/02(木) 12:59:54.32ID:DVH2qPZi Windowsでminiconda(4.9.2/python3.8.5)使っててproxy関係のエラーが出る。
proxyが必須なNW環境。
baseだとproxyエラーが出ずrequestで外部URLのスクレイピングなどもできる。
それ以外の環境をconda createで作ってそっちをactivateした状態からだと「cannot connect to proxy」エラーが出る。
.condarcにはproxyを記述してある。
どの環境からconda configを見てもHTTPもHTTPSもproxy情報が参照できている。
baseをcloneした環境を試したらそっちは繋がる。
cloneで作った環境とcloneせずにcreateした環境(proxyエラーになる)とでライブラリをチェックしたけどopensslとかcertifiとか入ってるもの自体はほとんど同じ。
違いというとcreateした方はversionがconda-forgeの最新版になってるからそこだろうか。
minicondaの最新版のインストーラ(4.10.3/python3.9)を使って再インストールしたらbaseからでも繋がらない。
proxy接続のためにWindowsの証明書ストアに.crtファイルをインポートとかしてるからその辺りかもしれない。
proxyが必須なNW環境。
baseだとproxyエラーが出ずrequestで外部URLのスクレイピングなどもできる。
それ以外の環境をconda createで作ってそっちをactivateした状態からだと「cannot connect to proxy」エラーが出る。
.condarcにはproxyを記述してある。
どの環境からconda configを見てもHTTPもHTTPSもproxy情報が参照できている。
baseをcloneした環境を試したらそっちは繋がる。
cloneで作った環境とcloneせずにcreateした環境(proxyエラーになる)とでライブラリをチェックしたけどopensslとかcertifiとか入ってるもの自体はほとんど同じ。
違いというとcreateした方はversionがconda-forgeの最新版になってるからそこだろうか。
minicondaの最新版のインストーラ(4.10.3/python3.9)を使って再インストールしたらbaseからでも繋がらない。
proxy接続のためにWindowsの証明書ストアに.crtファイルをインポートとかしてるからその辺りかもしれない。
731デフォルトの名無しさん
2021/09/02(木) 16:02:33.72ID:L8dQJCTS 初めてwindows使うんですがcondaとpipってどっちがいいんでしょうか
今まではノリでpip使ってたんですがググるとcondaもいいと言われて迷ってきました
主な使用用途は簡単なスクリプトからデータ計算、セキュリティの勉強や自分用のまとめ表作りなど本当に様々です
今まではノリでpip使ってたんですがググるとcondaもいいと言われて迷ってきました
主な使用用途は簡単なスクリプトからデータ計算、セキュリティの勉強や自分用のまとめ表作りなど本当に様々です
732デフォルトの名無しさん
2021/09/02(木) 16:15:26.22ID:4vWPiFe2733デフォルトの名無しさん
2021/09/02(木) 19:59:47.57ID:bRMdZZsN734デフォルトの名無しさん
2021/09/02(木) 20:21:57.15ID:PLPQmXRE735デフォルトの名無しさん
2021/09/02(木) 20:32:53.62ID:lSTkj0Rg736デフォルトの名無しさん
2021/09/02(木) 20:41:46.54ID:t+wDMqp+ クラス変数に順次アクセスする方法はありますでしょうか。(define代わりにクラス直下に変数が複数ある状態)
__dict__.valuesで取れるとあったのでリストに入れてforで回そうと思ったのですが、変数以外にいろんな属性がついてきてしまいます。
__dict__.valuesで取れるとあったのでリストに入れてforで回そうと思ったのですが、変数以外にいろんな属性がついてきてしまいます。
737デフォルトの名無しさん
2021/09/02(木) 20:55:57.53ID:DVH2qPZi >>732
原因分かったわ。
世の中に配布されてるcertifiのcacert.pemっていうファイルにこの環境で使ってる独自の証明書のpemファイルの中身を追記したら繋がった。
コピペは避けたいから2ファイル読ませられないかとcertifiを調べたけどcacert.pemが決め打ちだから無理っぽい。
ついでになぜか3.8.5までしか動かない問題をチェックしたがそっちは解消されず。
3.9にすると同じ方法でも繋がらないどころかconda自身のアップデートもできない。
openssl周りじゃないかと思うけど諦めた。
原因分かったわ。
世の中に配布されてるcertifiのcacert.pemっていうファイルにこの環境で使ってる独自の証明書のpemファイルの中身を追記したら繋がった。
コピペは避けたいから2ファイル読ませられないかとcertifiを調べたけどcacert.pemが決め打ちだから無理っぽい。
ついでになぜか3.8.5までしか動かない問題をチェックしたがそっちは解消されず。
3.9にすると同じ方法でも繋がらないどころかconda自身のアップデートもできない。
openssl周りじゃないかと思うけど諦めた。
738デフォルトの名無しさん
2021/09/03(金) 11:02:01.16ID:qtGmv/9F739デフォルトの名無しさん
2021/09/03(金) 13:14:44.01ID:QJ/1j3Lw >>738
出先なんで試せてないですが、そんな感じです。厳密には変数名ではなくて値を取りたいです。
出先なんで試せてないですが、そんな感じです。厳密には変数名ではなくて値を取りたいです。
740デフォルトの名無しさん
2021/09/03(金) 21:55:16.43ID:T2V+s1mX741デフォルトの名無しさん
2021/09/05(日) 13:43:56.65ID:LaSEjliV tzinfoが設定されているdatetimeオブジェクトを、時差が適用された状態で文字列か新しいdatetimeオブジェクトに変換したいです
具体的には↓のコードのlocal_dtから日本時間に変換したdatetimeオブジェクトが欲しいです
↓のコードではpublishedは最初UTCで、それをAsia/Tokyoのlocal_dtに変換しています
しかしlocal_dtのmonthやdayなどを参照しても日本時間になっていません
時差の実際の適用は手動でやる必要があるのでしょうか?
def get_published(self, obj):
print('tzinfo', obj.published.tzinfo) # UTC
tz = pytz.timezone('Asia/Tokyo')
local_dt = obj.published.astimezone(tz)
print('conv tzinfo', local_dt.tzinfo) # Asia/Tokyo
return local_dt
具体的には↓のコードのlocal_dtから日本時間に変換したdatetimeオブジェクトが欲しいです
↓のコードではpublishedは最初UTCで、それをAsia/Tokyoのlocal_dtに変換しています
しかしlocal_dtのmonthやdayなどを参照しても日本時間になっていません
時差の実際の適用は手動でやる必要があるのでしょうか?
def get_published(self, obj):
print('tzinfo', obj.published.tzinfo) # UTC
tz = pytz.timezone('Asia/Tokyo')
local_dt = obj.published.astimezone(tz)
print('conv tzinfo', local_dt.tzinfo) # Asia/Tokyo
return local_dt
742デフォルトの名無しさん
2021/09/05(日) 14:51:07.53ID:LgQhIBwq localtime()
743デフォルトの名無しさん
2021/09/05(日) 14:53:32.33ID:lJqHVJAL744デフォルトの名無しさん
2021/09/05(日) 15:54:14.08ID:LaSEjliV745デフォルトの名無しさん
2021/09/05(日) 16:08:51.59ID:lJqHVJAL746デフォルトの名無しさん
2021/09/05(日) 19:53:30.08ID:ejEr4mJx リストの結合について質問です
リストの先頭要素を末尾に移動したいとします
ex)[0,1,2]→[1,2,0]
コマンドラインで以下のように書いたところ
2行目で can only concatenate list (not "int") to list というTypeErrorが発生してしまいました
li = list(range(3))
li[1:] + li[0] # TypeError
結果として
li[1:] + li[:1]
としたら問題なく通ったのですが、先に書いた方がエラーになるのはどうしてですか?
li[0]は0(int型)なので、スライスを使用して取得したリスト(li[1:] で得られる [1, 2]、リスト型)とは加算演算できない、という認識で良いですか?
で、li[:1]で取得できるのはリスト型の[0]なので加算可能ということでしょうか
リストの先頭要素を末尾に移動したいとします
ex)[0,1,2]→[1,2,0]
コマンドラインで以下のように書いたところ
2行目で can only concatenate list (not "int") to list というTypeErrorが発生してしまいました
li = list(range(3))
li[1:] + li[0] # TypeError
結果として
li[1:] + li[:1]
としたら問題なく通ったのですが、先に書いた方がエラーになるのはどうしてですか?
li[0]は0(int型)なので、スライスを使用して取得したリスト(li[1:] で得られる [1, 2]、リスト型)とは加算演算できない、という認識で良いですか?
で、li[:1]で取得できるのはリスト型の[0]なので加算可能ということでしょうか
747デフォルトの名無しさん
2021/09/05(日) 20:47:37.17ID:DaMQ65LY >>746
大体そんな感じ
"+ (加算) 演算は、引数同士の和を与えます。引数は双方とも数値型か、双方とも同じ型のシーケンスでなければなりません。前者の場合、数値は共通の型に変換され、加算されます。後者の場合、シーケンスは結合 (concatenate) されます。"
https://docs.python.org/ja/3/reference/expressions.html#binary-arithmetic-operations
大体そんな感じ
"+ (加算) 演算は、引数同士の和を与えます。引数は双方とも数値型か、双方とも同じ型のシーケンスでなければなりません。前者の場合、数値は共通の型に変換され、加算されます。後者の場合、シーケンスは結合 (concatenate) されます。"
https://docs.python.org/ja/3/reference/expressions.html#binary-arithmetic-operations
748デフォルトの名無しさん
2021/09/05(日) 20:51:43.82ID:ejEr4mJx749デフォルトの名無しさん
2021/09/06(月) 12:19:20.10ID:5X8quI1P ファイル読み込み時に入力セパレータを改行から他の文字列に変える事は出来ないのでしょうか?
perlなら$/='\n\n'みたいに入力のレコードセパレータを改行2個にしたり出来るのですが
今はファイル一括で読み込んでsplitしてるので読み込み時間がえらく掛かってしまいます
1行ずつ連続した改行がくるまで読んで連結するとかはあまりスマートじゃないのでなにか上手い方法知ってらっしゃる方いましたら教えて下さい
perlなら$/='\n\n'みたいに入力のレコードセパレータを改行2個にしたり出来るのですが
今はファイル一括で読み込んでsplitしてるので読み込み時間がえらく掛かってしまいます
1行ずつ連続した改行がくるまで読んで連結するとかはあまりスマートじゃないのでなにか上手い方法知ってらっしゃる方いましたら教えて下さい
750デフォルトの名無しさん
2021/09/06(月) 12:45:22.69ID:n3QcSaSA csvとして読み込め
751デフォルトの名無しさん
2021/09/06(月) 12:47:18.91ID:FistWoaj open関数のnewlineパラメータでできそうだけど速くなる気がしない
752デフォルトの名無しさん
2021/09/06(月) 14:44:42.59ID:DsY+3+kX >>743
変数名や引数名の付け方が最低だな
変数名や引数名の付け方が最低だな
753デフォルトの名無しさん
2021/09/06(月) 14:46:25.44ID:DsY+3+kX >>746
li[1:] + [li[0]]
li[1:] + [li[0]]
754デフォルトの名無しさん
2021/09/06(月) 14:48:25.79ID:DsY+3+kX755デフォルトの名無しさん
2021/09/06(月) 15:11:11.17ID:h2TdR+zH first_value = li.pop(0)
li.append(first_value)
実行速度を気にするならdequeとか使うんかね
li.append(first_value)
実行速度を気にするならdequeとか使うんかね
756デフォルトの名無しさん
2021/09/06(月) 15:25:00.95ID:5X8quI1P >>754
すみません、2行ずつ読む意味が分からないんですがgzip化された25万行くらいのファイルでも読み込むと
d = fp.read()で一括で読んだ時は6秒程度、d = fp.readlines()やd = [x for x in fp]で1行毎に読んだ時は0.3秒程度と読み込みだけで結構な差が出てますので一括が原因だと考えてます。
やりたい事は下記のような必ず改行2連続で区切られたデータひと固まりをリストの1要素として取得したいわけですが、これを下記のようにやると読み込みに時間が掛かってしまうので先の質問に至ったわけです
d = fp.read()
s = d.split('\n\n')
aaa
bbb ここのひと固まりの行数は可変
ccc
ddd
eee
fff
ggg
hhh
すみません、2行ずつ読む意味が分からないんですがgzip化された25万行くらいのファイルでも読み込むと
d = fp.read()で一括で読んだ時は6秒程度、d = fp.readlines()やd = [x for x in fp]で1行毎に読んだ時は0.3秒程度と読み込みだけで結構な差が出てますので一括が原因だと考えてます。
やりたい事は下記のような必ず改行2連続で区切られたデータひと固まりをリストの1要素として取得したいわけですが、これを下記のようにやると読み込みに時間が掛かってしまうので先の質問に至ったわけです
d = fp.read()
s = d.split('\n\n')
aaa
bbb ここのひと固まりの行数は可変
ccc
ddd
eee
fff
ggg
hhh
757デフォルトの名無しさん
2021/09/06(月) 16:49:12.87ID:cl/YIp9D 人間の発想だと改行が2個続くことを条件に分割してやれば早いって思えるけどpythonのあるべき書き方だと違うやり方の方が早いこともありそうな気がするね。
例えばだけど1行ずつ読んでkeyを行番号にvalueにして中身は条件判断せずにテキストを読み込み切ってからvalueを縦に走査して改行のみが入ったところで区切りの処理をするみたいな形にしたら早まらんかな。
元の質問の狙いとしては改行が2個続いたときに普通は使われない文字(例えば▲とか)に1回置換してそこからまた▲を行区切りとして読めば短縮されるのでは?というように見える。
けど756を見るとその置換処理の時点で6秒かかって意味なさそうに見えるわな。
例えばだけど1行ずつ読んでkeyを行番号にvalueにして中身は条件判断せずにテキストを読み込み切ってからvalueを縦に走査して改行のみが入ったところで区切りの処理をするみたいな形にしたら早まらんかな。
元の質問の狙いとしては改行が2個続いたときに普通は使われない文字(例えば▲とか)に1回置換してそこからまた▲を行区切りとして読めば短縮されるのでは?というように見える。
けど756を見るとその置換処理の時点で6秒かかって意味なさそうに見えるわな。
758デフォルトの名無しさん
2021/09/06(月) 16:53:07.95ID:VKhiLpUq759デフォルトの名無しさん
2021/09/06(月) 17:15:24.45ID:5X8quI1P760デフォルトの名無しさん
2021/09/06(月) 17:34:12.87ID:cl/YIp9D ファイル開くときのopenでnewlineに改行2個入れてみたら?
761デフォルトの名無しさん
2021/09/06(月) 17:35:55.31ID:cl/YIp9D >>760
エラー出たわ
エラー出たわ
762デフォルトの名無しさん
2021/09/06(月) 18:22:41.52ID:5X8quI1P なんか調べてたら公式のissue152248で任意の区切り文字での読み取りの話を色々やられてたんで、それ通りやればとりあえずは望み通りの動きが出来ました
まあ知らない記述やらモジュールとか使ってるんで全く内容理解してませんが
長々と失礼しました、回答頂いた方ありがとうございました
まあ知らない記述やらモジュールとか使ってるんで全く内容理解してませんが
長々と失礼しました、回答頂いた方ありがとうございました
763デフォルトの名無しさん
2021/09/06(月) 23:20:11.85ID:lLs6oVSG よろしくお願いします
tqdmのプログレスバーがリストの長さだけ改行されてターミナル上で表示されてしまいます
これを1本のバーが更新されて表示されるようにしたいです
python3.7.9, VScode, windows10です
tqdmのプログレスバーがリストの長さだけ改行されてターミナル上で表示されてしまいます
これを1本のバーが更新されて表示されるようにしたいです
python3.7.9, VScode, windows10です
764デフォルトの名無しさん
2021/09/06(月) 23:39:42.63ID:ek7WdP0s 1行の長さを適当に100文字と考えて50MB程度しかないのに、buffer(あるいは行)に分割しないだけでそんなに遅くなるもんかな?
765デフォルトの名無しさん
2021/09/07(火) 10:32:46.11ID:SoS5+Qbw うちのpython3.8.5のシェル、pip install sympyが通らないからおかしいなーと思ってpip installを実行したらこれも通らないんだけど何故?
>>> pip install sympy
File "<stdin>", line 1
pip install sympy
^
SyntaxError: invalid syntax
>>> pip install
File "<stdin>", line 1
pip install
^
SyntaxError: invalid syntax
>>> pip install sympy
File "<stdin>", line 1
pip install sympy
^
SyntaxError: invalid syntax
>>> pip install
File "<stdin>", line 1
pip install
^
SyntaxError: invalid syntax
766デフォルトの名無しさん
2021/09/07(火) 10:50:57.04ID:SgLDDegk >>765
それはシェルじゃなくてPythonのインタプリタ
pip installはbashやzshみたいなシェルに入力するコマンド
Pythonのインタプリタは基本的にPythonのコードを入力するところ
それはシェルじゃなくてPythonのインタプリタ
pip installはbashやzshみたいなシェルに入力するコマンド
Pythonのインタプリタは基本的にPythonのコードを入力するところ
767デフォルトの名無しさん
2021/09/07(火) 11:05:44.28ID:E5TDGgcH >>764
色々試してみましたが、読み込みと言うよりメモリに一括で入れるのが原因で遅くなる感じのようです
d = fp.read() や d = ''.join(fp) や d = ''.join([x for x in fp])とか色々試しましたけど、これらの場合は遅くて
下記のようにfor文で連結させたら早くなりました
ネットとか見てもjoinの方が速いとか書いてるんですけどね
d = ''
for s in fp:
d += s
色々試してみましたが、読み込みと言うよりメモリに一括で入れるのが原因で遅くなる感じのようです
d = fp.read() や d = ''.join(fp) や d = ''.join([x for x in fp])とか色々試しましたけど、これらの場合は遅くて
下記のようにfor文で連結させたら早くなりました
ネットとか見てもjoinの方が速いとか書いてるんですけどね
d = ''
for s in fp:
d += s
768デフォルトの名無しさん
2021/09/07(火) 12:03:40.05ID:E5TDGgcH >>767
自己レスですけどマシンの問題のような気がします
Linuxでやってるとread()がめっちゃ遅いんですが、windowsだと変わらないくらい速いです。
寧ろ+=で代入とかしてる方はクソみたいに遅すぎて、なんでここまでの差が出るのか意味分からないくらいです
自己レスですけどマシンの問題のような気がします
Linuxでやってるとread()がめっちゃ遅いんですが、windowsだと変わらないくらい速いです。
寧ろ+=で代入とかしてる方はクソみたいに遅すぎて、なんでここまでの差が出るのか意味分からないくらいです
769デフォルトの名無しさん
2021/09/07(火) 12:18:31.34ID:hE/CNaTP770デフォルトの名無しさん
2021/09/07(火) 13:57:15.69ID:6nMAIx0t メモリ周りだとありがちなのは初回だけ遅くて2回目は早い(python用にメモリ空間を囲うから)だけどそうでもないならOSのファイルシステムの根っこのあたりが腐ってるとかかもな。
個人的に作ってるようなものだったらgoogle colabとかのクラウド実行環境でサクッと検証してみては?
個人的に作ってるようなものだったらgoogle colabとかのクラウド実行環境でサクッと検証してみては?
771デフォルトの名無しさん
2021/09/07(火) 14:25:01.03ID:QthkAqNV >必ず改行2連続で区切られたデータ
readlines() でループ回して一回ずつ飛ばせば良いだろうね
readlines() でループ回して一回ずつ飛ばせば良いだろうね
772デフォルトの名無しさん
2021/09/07(火) 15:00:03.49ID:GNL8Ud6q 改行3連続があった場合は?
773デフォルトの名無しさん
2021/09/07(火) 15:48:04.56ID:2tb+Xun1774デフォルトの名無しさん
2021/09/07(火) 18:18:55.32ID:SoS5+Qbw >>766
ありがとうございます。今度はシェルでpip install sympyが通ったんですが
pip installが通りません。
>pip install
ERROR: You must give at least one requirement to install (see "pip help install")
ありがとうございます。今度はシェルでpip install sympyが通ったんですが
pip installが通りません。
>pip install
ERROR: You must give at least one requirement to install (see "pip help install")
775デフォルトの名無しさん
2021/09/07(火) 18:42:45.52ID:o/q1by9H776デフォルトの名無しさん
2021/09/07(火) 18:46:56.75ID:9ZJa/YC2 d = ''
for s in fp:
__d += s
これは一番ダメな実装でしょ。
文字列はイミュータブルだから、メモリコピー量が2乗で増えていくことになる。
それでもマシンの能力が「十分」なうちは、他の実装より速いこともありうる、ってだけ。
for s in fp:
__d += s
これは一番ダメな実装でしょ。
文字列はイミュータブルだから、メモリコピー量が2乗で増えていくことになる。
それでもマシンの能力が「十分」なうちは、他の実装より速いこともありうる、ってだけ。
777デフォルトの名無しさん
2021/09/07(火) 19:35:15.63ID:yHN0q2ka >>776
ねーよ
ねーよ
778デフォルトの名無しさん
2021/09/07(火) 19:36:34.77ID:u7xHCyux >>773
sqlite3とどう関係が・・・??
sqlite3とどう関係が・・・??
779デフォルトの名無しさん
2021/09/07(火) 19:59:43.49ID:6nMAIx0t >>776
随分昔(※Java1.5の頃)から、「文字列結合は"+"ではなく、StringBufferを使うと処理が高速化する」ということが既に広く知られていました。
https://qiita.com/nkojima/items/0098dccbe4a593bc0306
みたいな話かな。
pythonだとどうなんだろ。
随分昔(※Java1.5の頃)から、「文字列結合は"+"ではなく、StringBufferを使うと処理が高速化する」ということが既に広く知られていました。
https://qiita.com/nkojima/items/0098dccbe4a593bc0306
みたいな話かな。
pythonだとどうなんだろ。
780デフォルトの名無しさん
2021/09/07(火) 20:23:56.12ID:SoS5+Qbw781デフォルトの名無しさん
2021/09/07(火) 20:25:59.15ID:yP3cXAjd pip list
782デフォルトの名無しさん
2021/09/07(火) 20:26:41.96ID:o/q1by9H >>780
節子、それやりたいならpip listや
節子、それやりたいならpip listや
783デフォルトの名無しさん
2021/09/07(火) 20:33:41.53ID:YcIWO4/P Elixir は片方向リストで、immutable だから、
先頭への追加ではコピーされないけど、
末尾へ追加するとコピーされる
つまり、先頭のみ最適化される
だから未だに、文字列を追加していく方法が分からない
先頭への追加ではコピーされないけど、
末尾へ追加するとコピーされる
つまり、先頭のみ最適化される
だから未だに、文字列を追加していく方法が分からない
784デフォルトの名無しさん
2021/09/07(火) 20:37:37.38ID:eKv4jfBm785デフォルトの名無しさん
2021/09/07(火) 21:31:13.42ID:8Blsw2sW CPythonでは最適化が入っていてO(n)になるんだけど使うなとPEP8に書いてある
https://www.python.org/dev/peps/pep-0008/#programming-recommendations
For example, do not rely on CPython's efficient implementation of in-place string concatenation
or statements in the form a += b or a = a + b. This optimization is fragile even in CPython
(it only works for some types) and isn't present at all in implementations that don't use refcounting.
In performance sensitive parts of the library, the ''.join() form should be used instead.
https://www.python.org/dev/peps/pep-0008/#programming-recommendations
For example, do not rely on CPython's efficient implementation of in-place string concatenation
or statements in the form a += b or a = a + b. This optimization is fragile even in CPython
(it only works for some types) and isn't present at all in implementations that don't use refcounting.
In performance sensitive parts of the library, the ''.join() form should be used instead.
786デフォルトの名無しさん
2021/09/07(火) 23:20:45.23ID:Cp1uuQsT >>779
それってJavaの処理系がさぼっているだけだよねね
それってJavaの処理系がさぼっているだけだよねね
787デフォルトの名無しさん
2021/09/08(水) 00:39:17.00ID:jISXv5nw789デフォルトの名無しさん
2021/09/08(水) 15:56:50.49ID:45GUJlB8 重いcondaら
790デフォルトの名無しさん
2021/09/08(水) 16:50:53.30ID:B2IhbCSc 勉強するだけならcondaが便利
でも他システムと繋げにくい
でも他システムと繋げにくい
791デフォルトの名無しさん
2021/09/08(水) 17:27:10.26ID:tJQkvu8J formatで
0.1未満なら "5.2%"
0.1以上〜1.0未満なら "5.1%"
みたいに、全体の桁数は固定で値によって少数点以下を調整してくれるような簡易な方法ってないですか?(%だけでなく、fなんかでも)
formatだと丸められるので、単純に
if x >= 0.1 とかはできないので、一旦formatかけてからlenで桁が溢れてないかチェックしてるんですが、もうちょっとスマートな方法が無いものかと。
0.1未満なら "5.2%"
0.1以上〜1.0未満なら "5.1%"
みたいに、全体の桁数は固定で値によって少数点以下を調整してくれるような簡易な方法ってないですか?(%だけでなく、fなんかでも)
formatだと丸められるので、単純に
if x >= 0.1 とかはできないので、一旦formatかけてからlenで桁が溢れてないかチェックしてるんですが、もうちょっとスマートな方法が無いものかと。
792デフォルトの名無しさん
2021/09/08(水) 17:42:49.27ID:s8bChe9P 単に関数作っとけばいいんでないの?
793デフォルトの名無しさん
2021/09/08(水) 17:50:12.13ID:QqH5BAVe 何回か読み直したが
難解過ぎて俺には文章の意味がわからなかったよorz
難解過ぎて俺には文章の意味がわからなかったよorz
794デフォルトの名無しさん
2021/09/08(水) 17:51:41.60ID:45GUJlB8 ruby 使ってると馬鹿になりゅよ
795デフォルトの名無しさん
2021/09/08(水) 17:53:59.73ID:s8bChe9P >0.1未満なら "5.2%"
>0.1以上〜1.0未満なら "5.1%"
ここが逆になってるんだろ?
小数点以下が0.1以上の場合は全て0.2に統一って事じゃ無いの?
そうでないとしたら俺も理解不能だわ。
>0.1以上〜1.0未満なら "5.1%"
ここが逆になってるんだろ?
小数点以下が0.1以上の場合は全て0.2に統一って事じゃ無いの?
そうでないとしたら俺も理解不能だわ。
796デフォルトの名無しさん
2021/09/08(水) 18:59:48.32ID:XUjypBYd condaはバックアップ取ったりcloneできるのが便利。
797デフォルトの名無しさん
2021/09/08(水) 19:32:05.85ID:aHZlxj+w master.py上に実行したいスクリプトtestxx.py(xxは数字)がたくさんあります。
os.systemで引数を渡してtestxx.pyを実行しているのですが、testxx.pyからの戻り値を受け取る場合はどうしたら良いのでしょうか。標準出力の値なら取れるみたいな記述を見ましたが、実行中にprintを多様しているため、任意の戻り値のみを取得したいです。
os.systemで引数を渡してtestxx.pyを実行しているのですが、testxx.pyからの戻り値を受け取る場合はどうしたら良いのでしょうか。標準出力の値なら取れるみたいな記述を見ましたが、実行中にprintを多様しているため、任意の戻り値のみを取得したいです。
798791
2021/09/08(水) 20:04:49.50ID:tJQkvu8J 分かりにくくてすみませぬ
{x:5.2%} {x:5.1%} というformatで
xが0.1=10%、1.0=100% なので、
10%未満なら9.99% まで少数点2桁、
10%以上100%未満なら99.9% まで 少数点1桁
で表示してほしい、という意味です。
全体桁固定で少数点だけ変動するようなformatの表記、あるいはやり方は無いかなという質問です
{x:5.2%} {x:5.1%} というformatで
xが0.1=10%、1.0=100% なので、
10%未満なら9.99% まで少数点2桁、
10%以上100%未満なら99.9% まで 少数点1桁
で表示してほしい、という意味です。
全体桁固定で少数点だけ変動するようなformatの表記、あるいはやり方は無いかなという質問です
799デフォルトの名無しさん
2021/09/08(水) 20:42:07.84ID:s/O0A+9w こんなんで
x = 12.125
f'{x:.2f}'[:4]
x = 12.125
f'{x:.2f}'[:4]
800デフォルトの名無しさん
2021/09/09(木) 01:16:22.36ID:YDItKt7x numpyのメソッドzerosやonesなどは引数をタプルで指定することになっていますが、リストで指定しても実行できています。
特に問題ないように見えるのですが、タプルで指定した方がいい理由などあるのでしょうか?
特に問題ないように見えるのですが、タプルで指定した方がいい理由などあるのでしょうか?
801デフォルトの名無しさん
2021/09/09(木) 02:10:35.73ID:1BTdIMLT タプルは普遍だけれども、リストはそうでないから成長することを想定して必要以上の領域が確保されちゃうぶん効率が悪いとかあるんじゃね?知らんけど
802デフォルトの名無しさん
2021/09/09(木) 02:34:23.48ID:OKDvztcs sequenceの操作しかしてないから実際はlistでもOKないんじゃない?
onesの説明には
> Parameters: shape: int or sequence of ints
とあるしzeros側のメンテ漏れとか
onesの説明には
> Parameters: shape: int or sequence of ints
とあるしzeros側のメンテ漏れとか
803デフォルトの名無しさん
2021/09/09(木) 08:14:59.88ID:Ubp0J8aB >>799
%だと末尾に%が付くので…
%だと末尾に%が付くので…
804デフォルトの名無しさん
2021/09/09(木) 08:44:11.31ID:1BTdIMLT805デフォルトの名無しさん
2021/09/09(木) 14:16:43.72ID:3sOE3L2f806デフォルトの名無しさん
2021/09/09(木) 14:54:22.16ID:MjE68I3R807デフォルトの名無しさん
2021/09/09(木) 16:50:44.90ID:Ur+lRPYu これで良くない?
str_formatted = f"{val:.2%}"[:4] +"%"
str_formatted = f"{val:.2%}"[:4] +"%"
808デフォルトの名無しさん
2021/09/09(木) 16:58:17.08ID:MjE68I3R809デフォルトの名無しさん
2021/09/09(木) 17:03:24.41ID:s2e04Gy+ >>808
> 10%未満なら9.99% まで少数点2桁、
> 10%以上100%未満なら99.9% まで 少数点1桁
って言ってるのにわざわざ150%とか出してきてドヤるのは頭になんか障害でもあるのか?
> 10%未満なら9.99% まで少数点2桁、
> 10%以上100%未満なら99.9% まで 少数点1桁
って言ってるのにわざわざ150%とか出してきてドヤるのは頭になんか障害でもあるのか?
810デフォルトの名無しさん
2021/09/09(木) 17:16:30.91ID:MjE68I3R811デフォルトの名無しさん
2021/09/09(木) 17:32:52.06ID:3PF/LFW4 その>>798から引用してるんだけど…
マジでお前が読めよw
マジでお前が読めよw
812デフォルトの名無しさん
2021/09/09(木) 17:35:57.82ID:MjE68I3R■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 俺「お湯を流してと…」シンク「ボンッw」
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- もう寝ます
- さすがに広告の煽りエグくね?
- 1,000万円のBMWに擦ってしまった札幌のガキ、捕らえられてガチで詰む [329329848]
