当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがあるのでそっち池。
「Ruby」「某言語では」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合は、
表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類とバージョン)をシッカリ書くこと。
Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★
5chの仕様【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】のため、どうにもなりましぇん。
↓等の、いわゆるコードう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
〇前スレ〇 くだすれPython(超初心者用) その52【まず1嫁】
https://mevius.5ch.net/test/read.cgi/tech/1610137345/
次スレは >>985 あたりが挑戦してくだしあ。(980過ぎて自動落ちは、無くなって久しい)
### END OF TEMPLATE ###
探検
【まず1嫁】くだすれPython(超初心者用) その53
■ このスレッドは過去ログ倉庫に格納されています
2021/03/16(火) 07:19:44.36ID:PfTIXkDh
456デフォルトの名無しさん
2021/04/25(日) 18:34:24.22ID:Fk25aiPG >>454
ありがとうございます。
ありがとうございます。
457デフォルトの名無しさん
2021/04/25(日) 19:16:36.74ID:sodTi8GH458デフォルトの名無しさん
2021/04/25(日) 22:09:06.87ID:piDGyGmF459デフォルトの名無しさん
2021/04/28(水) 09:48:30.09ID:IxwcvE22 どうしてPython使ってる人ってswitch-caseなくても我慢できるんですか?
それしか知らないから不満を持ちようがないとか?
それしか知らないから不満を持ちようがないとか?
460デフォルトの名無しさん
2021/04/28(水) 09:58:49.52ID:Lpz9/b/L 我慢できるとかじゃなく、ないものはしょうがないだろ。
それがどうしても嫌ならpythonを使わなければいい。
なんらかの理由でpythonを使う(使わなければいけない)のなら、
他の人も同様でしょ。
それがどうしても嫌ならpythonを使わなければいい。
なんらかの理由でpythonを使う(使わなければいけない)のなら、
他の人も同様でしょ。
461デフォルトの名無しさん
2021/04/28(水) 10:21:09.69ID:hp9xP/+6 似たような処理は代入演算子とif,elif,elseでできるって書いてあったよ
462デフォルトの名無しさん
2021/04/28(水) 10:57:42.68ID:C/XDgQGy パターンマッチングも結局、式ではなく文なんだな。
463デフォルトの名無しさん
2021/04/28(水) 11:11:25.75ID:3EuQZ3Ew pythonみたいな構造体がきっちりしてるわけでもない言語なら
そこまでパターンマッチ必要にはならんだろ。
構造体からデータ取り出すのがそこまで面倒な言語でもない。
そこまでパターンマッチ必要にはならんだろ。
構造体からデータ取り出すのがそこまで面倒な言語でもない。
464デフォルトの名無しさん
2021/04/28(水) 11:38:24.28ID:ewi3Y8j6 >>461
switch(a){ ... } みたいなやつなら良いけど switch(a + 1){ … } とかだと一時変数を作るか各条件式にa + 1とか書くはめになるからねぇ
switch文があるに越したことはないと思う
switch(a){ ... } みたいなやつなら良いけど switch(a + 1){ … } とかだと一時変数を作るか各条件式にa + 1とか書くはめになるからねぇ
switch文があるに越したことはないと思う
465デフォルトの名無しさん
2021/04/28(水) 12:33:15.42ID:Je4EzdV5 構造体に使うイメージはなかったな
昨今のtypingの流儀に乗っかったんだと思う
昨今のtypingの流儀に乗っかったんだと思う
466デフォルトの名無しさん
2021/04/28(水) 13:19:32.28ID:hp9xP/+6467デフォルトの名無しさん
2021/04/28(水) 17:02:16.33ID:EhiFgjxN 文増えてくと混沌としてくるから今のPythonの流れはちょっとどうなのかなと思うところはある
468デフォルトの名無しさん
2021/04/28(水) 17:57:38.85ID:tBbflF5J python3.10か3.11でパターンマッチ来るんだっけ
469デフォルトの名無しさん
2021/04/28(水) 21:15:45.49ID:kjLpBedQ470デフォルトの名無しさん
2021/04/28(水) 21:23:17.33ID:jo1UoyuU switch-caseって、条件が等差数列となるときはjmp先を演算できるよねとできた
実にCらしい構文で、そういうことをしない言語にとっては実装が面倒なだけの構文かと
実にCらしい構文で、そういうことをしない言語にとっては実装が面倒なだけの構文かと
471デフォルトの名無しさん
2021/04/28(水) 21:27:42.21ID:7X7PmWB6 if文でやると汚くなる言語がswitchに逃げたとみたらどう
472デフォルトの名無しさん
2021/04/28(水) 21:46:19.33ID:HN4XQcog473デフォルトの名無しさん
2021/04/28(水) 22:03:43.50ID:lX6x7Umv 最近C#からswitch実質なくなったと聞いたぞ
中で
中で
474デフォルトの名無しさん
2021/04/28(水) 22:04:33.39ID:lX6x7Umv 中で条件式とか使えるようになって実質IFの羅列になったとか
475デフォルトの名無しさん
2021/04/28(水) 22:10:35.31ID:RJLrCSIQ >>472
パーサーを置き換えるのが面倒くさかったからだと思ってる
パーサーを置き換えるのが面倒くさかったからだと思ってる
476デフォルトの名無しさん
2021/04/29(木) 17:24:45.07ID:hj4NO6UY477デフォルトの名無しさん
2021/04/29(木) 18:11:22.33ID:8Iq2BU/P リテラルな値でのswitchならenumでシンプルにかけるしな
478デフォルトの名無しさん
2021/04/29(木) 20:52:09.39ID:naaqk/s1 ライブラリ使ってるとたまに
hoge(option=DEFAULT_TYPE)
みたいな感じでオプションを設定できるのがあったと思うのですが
このDEFAULT_TYPEの部分は変数を定義した覚えもないのに使えてた気がします
どういう仕組みなのでしょうか
hoge(option=DEFAULT_TYPE)
みたいな感じでオプションを設定できるのがあったと思うのですが
このDEFAULT_TYPEの部分は変数を定義した覚えもないのに使えてた気がします
どういう仕組みなのでしょうか
479デフォルトの名無しさん
2021/04/29(木) 20:55:11.65ID:hj4NO6UY from なんかのライブラリ import *
とかでその定数をimportしてると思うよ
とかでその定数をimportしてると思うよ
480デフォルトの名無しさん
2021/04/30(金) 09:28:09.56ID:MB7wv8yI オブジェクト指向は全然分からないからクラスの定義は出来ない
でも関数だけで何とか出来ちゃうから有難いわ
でも関数だけで何とか出来ちゃうから有難いわ
481デフォルトの名無しさん
2021/04/30(金) 09:55:14.88ID:rWXbtYRM >>479
なるほど
どのライブラリだったか忘れて確かめられませんが
読み込み先でDEFAULT_TYPEをprintすれば何かわかりそうですね
#hoge.py
DEFAULT_TYPE='default'
class Hoge:
def fuga(self,*,option=None):
print('Option: %s'%option)
#
from hoge import Hoge,DEFAULT_TYPE
h=Hoge()
h.fuga(option=DEFAULT_TYPE)
上のようにimportでDEFAULT_TYPEしていたかどうか
でなければhoge.DEFAULT_TYPEという指定だったか記憶が曖昧ですが
こんな感じでできました
import DEFAULT_TYPEしなくてもDEFAULT_TYPEだけでいけた気がするのですが
記憶違いだったかもしれません
なるほど
どのライブラリだったか忘れて確かめられませんが
読み込み先でDEFAULT_TYPEをprintすれば何かわかりそうですね
#hoge.py
DEFAULT_TYPE='default'
class Hoge:
def fuga(self,*,option=None):
print('Option: %s'%option)
#
from hoge import Hoge,DEFAULT_TYPE
h=Hoge()
h.fuga(option=DEFAULT_TYPE)
上のようにimportでDEFAULT_TYPEしていたかどうか
でなければhoge.DEFAULT_TYPEという指定だったか記憶が曖昧ですが
こんな感じでできました
import DEFAULT_TYPEしなくてもDEFAULT_TYPEだけでいけた気がするのですが
記憶違いだったかもしれません
482デフォルトの名無しさん
2021/04/30(金) 15:52:58.65ID:4ngw0sc5 tkinterのdestroy()って親を殺せば子は見逃しても問題ない?
全部明示して殺す必要ありますか?
ガベージコレクションが頑張るから大丈夫なのかな
全部明示して殺す必要ありますか?
ガベージコレクションが頑張るから大丈夫なのかな
483デフォルトの名無しさん
2021/04/30(金) 21:22:20.53ID:S74Hi/jw 親をdestroyすれば子供子孫すべてdestroyする
484デフォルトの名無しさん
2021/04/30(金) 21:47:35.28ID:Xt8J6sgV 通報しませんでした
485デフォルトの名無しさん
2021/04/30(金) 22:00:05.11ID:9cqxfo3+ def destroy(self):
for c in list(self.children.values()): c.destroy()
親は子供を殺すが孫は殺さない
子供が孫を殺す
for c in list(self.children.values()): c.destroy()
親は子供を殺すが孫は殺さない
子供が孫を殺す
486デフォルトの名無しさん
2021/04/30(金) 22:10:04.55ID:lUzIA11U 殺すとか殺さないとか
物騒なスレですね
物騒なスレですね
487デフォルトの名無しさん
2021/04/30(金) 22:57:56.75ID:sx17ZQMm gc働かないん?
488デフォルトの名無しさん
2021/05/01(土) 06:16:19.35ID:Ca2DZO3D stack overflowの書き込みで、親が死ねば孤独になった子供はGCがやがて消す
消えるまでメモリには残る って書いてあった気がする
消えるまでメモリには残る って書いてあった気がする
489デフォルトの名無しさん
2021/05/01(土) 07:41:58.14ID:PUOqmJZW490デフォルトの名無しさん
2021/05/01(土) 08:15:27.05ID:gyFQOP1a >>477
そのswitchの代わりという使い方だと、PythonのEnumはいまいちですわ。
JavaのEnumがまさにそういう使い方ができるようになっている(Strategy/Stateパターン)。
そのswitchの代わりという使い方だと、PythonのEnumはいまいちですわ。
JavaのEnumがまさにそういう使い方ができるようになっている(Strategy/Stateパターン)。
491デフォルトの名無しさん
2021/05/01(土) 10:02:13.72ID:qiYKVwJr syntaxエラーをチェックするツールありますか?
492デフォルトの名無しさん
2021/05/01(土) 12:52:24.80ID:R4IHrQy8 python -m py_compile ソースファイル
493デフォルトの名無しさん
2021/05/01(土) 13:22:27.14ID:qiYKVwJr >>492
ありがとうございました。
*.pyでソースを指定したら全部.pycが出来上がり、ノーエラーでした。
試しにwhileの:を削除してみたらSyntaxErrorの指摘が表示されました。
これで安心です。
ありがとうございました。
*.pyでソースを指定したら全部.pycが出来上がり、ノーエラーでした。
試しにwhileの:を削除してみたらSyntaxErrorの指摘が表示されました。
これで安心です。
494デフォルトの名無しさん
2021/05/01(土) 13:29:51.59ID:psDEcvhX flake8とか使えば良くない…?
495デフォルトの名無しさん
2021/05/01(土) 13:50:54.37ID:oZHy3HfC うちはflake8とblack派だけど勉強になった
496デフォルトの名無しさん
2021/05/01(土) 13:52:21.43ID:jntNu2g9 linterだと、実際動くかどうかまではわからないことが多いと思う
いくつかあるlinterの中では俺もflake8を使ってるわ
いくつかあるlinterの中では俺もflake8を使ってるわ
497デフォルトの名無しさん
2021/05/01(土) 17:57:55.31ID:qiYKVwJr PyQtで自動生成されるuiソースもflake8で結構色々でますね。
自分のソースは通信系なのでtry/except入れているのでsyntaxエラーさえも例外で通信リカバリーみたいになるので悩んでました。
自分のソースは通信系なのでtry/except入れているのでsyntaxエラーさえも例外で通信リカバリーみたいになるので悩んでました。
498デフォルトの名無しさん
2021/05/01(土) 21:57:09.95ID:qfW/WcRP >>496
Syntax Errorはちゃんとでるんでないかい?
一方で、こういう逆のケースはある。
globals()['tau'] = 6.283185
print(tau) # linterやIDEではエラーとでるけど、実際にはちゃんと動く
Syntax Errorはちゃんとでるんでないかい?
一方で、こういう逆のケースはある。
globals()['tau'] = 6.283185
print(tau) # linterやIDEではエラーとでるけど、実際にはちゃんと動く
499デフォルトの名無しさん
2021/05/02(日) 15:17:35.67ID:v2ZnBcL1 a = ['a','b','c']
if not a[3]:
_print()
javascriptみたいにundefinedになってくれればと思ったのですが
pythonはIndexErrorが出るみたいですね
これを場合分けしようと思うと、try使うしかないですよね?
list index out of rangeの場合はelseそれ以外は値を取得
みたいにifだけ書きたいと思ったんですけどね
if not a[3]:
_print()
javascriptみたいにundefinedになってくれればと思ったのですが
pythonはIndexErrorが出るみたいですね
これを場合分けしようと思うと、try使うしかないですよね?
list index out of rangeの場合はelseそれ以外は値を取得
みたいにifだけ書きたいと思ったんですけどね
500デフォルトの名無しさん
2021/05/02(日) 15:20:45.85ID:Eu1LZK3p idx < len(a)でインデックスが範囲内にあることを確認するとか?
501デフォルトの名無しさん
2021/05/02(日) 15:20:49.97ID:zAlV+S16 dictならそういうのあるけどlistはないな
len(list)で長さ確認してから取得するか、try-catchするしか無い
len(list)で長さ確認してから取得するか、try-catchするしか無い
502デフォルトの名無しさん
2021/05/02(日) 20:42:49.07ID:x2TfprvW if not a[3:]:
で ok
で ok
503デフォルトの名無しさん
2021/05/02(日) 23:59:52.42ID:Qiy/T2Qn listを拡張して独自クラスを定義するのはどうか
class DefaultList(list):
__def __getitem__(self,i):
____if i<len(self):
______return super().__getitem__(i)
____else:
______return None
a=DefaultList([‘a’,’b’,’c’])
if not a[3]:
class DefaultList(list):
__def __getitem__(self,i):
____if i<len(self):
______return super().__getitem__(i)
____else:
______return None
a=DefaultList([‘a’,’b’,’c’])
if not a[3]:
504デフォルトの名無しさん
2021/05/03(月) 00:41:21.84ID:4Jcj15/I >>502
スライス範囲を絞ってif not a[idx: idx + 1]とかにしたらより速くなりそう
スライス範囲を絞ってif not a[idx: idx + 1]とかにしたらより速くなりそう
505デフォルトの名無しさん
2021/05/03(月) 08:29:57.06ID:oY4C2yCE いきなりStopIterationで止まるだけだから、長さ関係ないだろ。
普通にlenでいい。
JavaScriptやPHPのリスト"もどき"と比べるのもナンセンス。
普通にlenでいい。
JavaScriptやPHPのリスト"もどき"と比べるのもナンセンス。
506デフォルトの名無しさん
2021/05/03(月) 09:20:58.90ID:TDKc9ux4 環境はwindows10 64bitです
親フォルダ
:子フォルダA:画像1.画像2
:子フォルダB:画像1..
という構造があって,pathlibで生成した子フォルダのpathをiterdir()で回して
画像pathをPILのImage.openで読もうとしてるんですが
親か子のフォルダ名がめっちゃ長くなると
FileNotFoundError: [Errno 2] No such file or directoryになるやつが出たり出なかったりします
フォルダ名を短くして,画像名を最大まで長くした場合はエラーが出ません
何が原因で,どうすれば読めるようにできますか?
できればエラーキャッチしてその場で読めるようにしたい (フォルダ名のリネームはとりあえず置いておきたい)
親フォルダ
:子フォルダA:画像1.画像2
:子フォルダB:画像1..
という構造があって,pathlibで生成した子フォルダのpathをiterdir()で回して
画像pathをPILのImage.openで読もうとしてるんですが
親か子のフォルダ名がめっちゃ長くなると
FileNotFoundError: [Errno 2] No such file or directoryになるやつが出たり出なかったりします
フォルダ名を短くして,画像名を最大まで長くした場合はエラーが出ません
何が原因で,どうすれば読めるようにできますか?
できればエラーキャッチしてその場で読めるようにしたい (フォルダ名のリネームはとりあえず置いておきたい)
507デフォルトの名無しさん
2021/05/03(月) 09:25:40.83ID:YjR4A9Iz >>506
フルパスが長すぎてpython内であふれてしまうのが原因
フルパスではなくショートパスを生成して、それでやりとりするようにすればとりま回避できるが
あまりに長いフルパスは非推奨なのでとりま置いておいたとしてもいつかは直せ
フルパスが長すぎてpython内であふれてしまうのが原因
フルパスではなくショートパスを生成して、それでやりとりするようにすればとりま回避できるが
あまりに長いフルパスは非推奨なのでとりま置いておいたとしてもいつかは直せ
508デフォルトの名無しさん
2021/05/03(月) 09:47:03.23ID:GN4IAf32 PythonじゃなくてWindowsのせい
多分これでしょう
Windowsはデフォで絶対パス260文字制限があるらしいから、解除したいならレジストリをいじる必要がある
https://bizlog.tech/windows-maxpath-change/
多分これでしょう
Windowsはデフォで絶対パス260文字制限があるらしいから、解除したいならレジストリをいじる必要がある
https://bizlog.tech/windows-maxpath-change/
509デフォルトの名無しさん
2021/05/03(月) 09:59:34.50ID:YBya6Fwz フォルダ名はわかるけど
ファイル名長いのが大丈夫なのはなんでだ?
ファイル名長いのが大丈夫なのはなんでだ?
510デフォルトの名無しさん
2021/05/03(月) 12:48:07.42ID:TDKc9ux4 >>507
なるほど
今回はpyinstaller使いたくて、そうするとwin32apiとの相性が悪いっつーかショートパスが危険球っぽいんで
もうロングパスは受け付けないことにします。ありがとうございました
なるほど
今回はpyinstaller使いたくて、そうするとwin32apiとの相性が悪いっつーかショートパスが危険球っぽいんで
もうロングパスは受け付けないことにします。ありがとうございました
511デフォルトの名無しさん
2021/05/03(月) 12:52:29.86ID:YjR4A9Iz512デフォルトの名無しさん
2021/05/03(月) 18:53:48.47ID:YjR4A9Iz >>510追記
ところで、相対パス/絶対パス/フルパス/短縮(ショート)パスの違いはわかってるんだよな???
ところで、相対パス/絶対パス/フルパス/短縮(ショート)パスの違いはわかってるんだよな???
513デフォルトの名無しさん
2021/05/03(月) 23:59:09.62ID:9/VcaNVK その情報要る?
たぶん抜本的には裏で構造体を丸ごと短い名前でコピーして、それを処理して返すようにするとかいう話じゃね
たぶん抜本的には裏で構造体を丸ごと短い名前でコピーして、それを処理して返すようにするとかいう話じゃね
514デフォルトの名無しさん
2021/05/04(火) 00:11:11.66ID:MueeR1Ae まあショートネームは避けたい
そもそも超ロングパスがあり得る環境だとショートパス化できない文字列がぶち込まれそうだし
長いのはエラー吐くか
コピー→リネーム→処理→置き換え たい
そもそも超ロングパスがあり得る環境だとショートパス化できない文字列がぶち込まれそうだし
長いのはエラー吐くか
コピー→リネーム→処理→置き換え たい
515デフォルトの名無しさん
2021/05/04(火) 00:59:43.45ID:Zkcb+r3V Windowsの場合はPythonのインストールの最後に260文字制限を解除するか
聞かれたような気がする
聞かれたような気がする
516デフォルトの名無しさん
2021/05/04(火) 11:15:39.91ID:MTtoo9am win上のpythonて32767文字扱えないのか
517デフォルトの名無しさん
2021/05/04(火) 12:20:24.62ID:g/PMv139518デフォルトの名無しさん
2021/05/04(火) 14:21:30.25ID:QySiaJ1m 以下のようなデータセットのリストがあり、例えば各nameごとに、valueが最大となるものだけ抽出したい場合に内包表記や関数などで簡単に書ける方法はありますか?
[
{'name': 'a', 'value': 100},
{'name': 'a', 'value': 200},
{'name': 'b', 'value': 50},
{'name': 'b', 'value': 105},
{'name': 'c', 'value': 150}
]
↓こういうリストとして抽出したいです。
[
{'name': 'a', 'value': 200},
{'name': 'b', 'value': 105},
{'name': 'c', 'value': 150}
]
valueはタイムスタンプ等で最新のものだけ抽出する、といった使い方をしたいです。
[
{'name': 'a', 'value': 100},
{'name': 'a', 'value': 200},
{'name': 'b', 'value': 50},
{'name': 'b', 'value': 105},
{'name': 'c', 'value': 150}
]
↓こういうリストとして抽出したいです。
[
{'name': 'a', 'value': 200},
{'name': 'b', 'value': 105},
{'name': 'c', 'value': 150}
]
valueはタイムスタンプ等で最新のものだけ抽出する、といった使い方をしたいです。
519デフォルトの名無しさん
2021/05/04(火) 14:46:49.13ID:7YaPXlVC 聞く限りだとfor name, value in data:とかで回して
out[name] = max(out[name], value)
みたいな感じで処理したら良さそうだけど
out[name] = max(out[name], value)
みたいな感じで処理したら良さそうだけど
520デフォルトの名無しさん
2021/05/04(火) 15:14:35.45ID:E49Bjnaf df.groupby('name').max()
521デフォルトの名無しさん
2021/05/04(火) 15:16:48.68ID:QySiaJ1m >>519
ありがとうございます。
後出しで申し訳ないのですが、各データはvalue以外にも複数の属性値をもった辞書データになってます。
nameは抽出後は当然ユニークになりますが、抽出後もリストのままで並びも元の並びはキープしておきたいです。
SQLで言う、GROUP BYしてMAX関数適用するような感じの抽出方法はないかなと思いまして。
ありがとうございます。
後出しで申し訳ないのですが、各データはvalue以外にも複数の属性値をもった辞書データになってます。
nameは抽出後は当然ユニークになりますが、抽出後もリストのままで並びも元の並びはキープしておきたいです。
SQLで言う、GROUP BYしてMAX関数適用するような感じの抽出方法はないかなと思いまして。
522デフォルトの名無しさん
2021/05/04(火) 15:20:08.13ID:QySiaJ1m523デフォルトの名無しさん
2021/05/04(火) 15:35:54.90ID:LRawq6Xg 一応pythonの組み込みライブラリにもgroupbyってあったよね
pandasでやるのが一番手っ取り早いと思うけど
pandasでやるのが一番手っ取り早いと思うけど
524デフォルトの名無しさん
2021/05/04(火) 16:05:52.03ID:Z3Fw33AT Ruby なら、
input = [ {'name': 'a', 'value': 100}, {'name': 'c', 'value': 150}, {'name': 'a', 'value': 200} ]
result = input.group_by{ |hash| hash[ :name ] }.map do |ary|
ary[ 1 ].max_by{ |hash| hash[ :value ] }
end
p result #=> [{:name=>"a", :value=>200}, {:name=>"c", :value=>150}]
input = [ {'name': 'a', 'value': 100}, {'name': 'c', 'value': 150}, {'name': 'a', 'value': 200} ]
result = input.group_by{ |hash| hash[ :name ] }.map do |ary|
ary[ 1 ].max_by{ |hash| hash[ :value ] }
end
p result #=> [{:name=>"a", :value=>200}, {:name=>"c", :value=>150}]
525デフォルトの名無しさん
2021/05/04(火) 16:52:55.89ID:sM9M0m2z >>524
グロ
グロ
526デフォルトの名無しさん
2021/05/04(火) 16:53:31.46ID:plXKAz40 おっルビおじw
527デフォルトの名無しさん
2021/05/04(火) 17:23:42.38ID:5sA+/wAg >>518
愚直に内包表記
[
{‘name’:name, ‘value’:max(record[‘value’] for record in data if record[‘name’]==name)}
for name in set(r[‘name’] for r in data)
]
ただしnameの並びは崩れる
愚直に内包表記
[
{‘name’:name, ‘value’:max(record[‘value’] for record in data if record[‘name’]==name)}
for name in set(r[‘name’] for r in data)
]
ただしnameの並びは崩れる
528デフォルトの名無しさん
2021/05/04(火) 19:52:15.91ID:ns0mTqm6 pathlib.iterdir()の読み込み順ってどういう仕組みで制御されてるのかな
windowsは昇順001>0001なんだけど、natsortとかos_sortedでも0001>001になるのが
pathlibのジェネレーターはOSソートに追従してる気がする…偶然?
windowsは昇順001>0001なんだけど、natsortとかos_sortedでも0001>001になるのが
pathlibのジェネレーターはOSソートに追従してる気がする…偶然?
529デフォルトの名無しさん
2021/05/05(水) 08:36:34.57ID:/UG/+rZL ちょっと試してみたんだけど
01.txt
1.txt
2.txt
0010.txt
a.a.01.txt
a.a001.txt
explolerの名前の昇順でこう表示されるディレクトリを
同じ並びで出力するソート形式はないような気がする
natsortもos_sortedも効かないw
すごいなwindowsどうなってんだ
01.txt
1.txt
2.txt
0010.txt
a.a.01.txt
a.a001.txt
explolerの名前の昇順でこう表示されるディレクトリを
同じ並びで出力するソート形式はないような気がする
natsortもos_sortedも効かないw
すごいなwindowsどうなってんだ
530デフォルトの名無しさん
2021/05/05(水) 08:55:12.40ID:XnkETAr1 [natsorted[数字だけのファイル], sorted[文字あり]]
うーん……
うーん……
531デフォルトの名無しさん
2021/05/05(水) 09:20:35.28ID:szdX8X2R windowsのファイル名ソートアルゴリズムが謎
532デフォルトの名無しさん
2021/05/05(水) 09:30:37.39ID:wUp61E7s その謎、前からあるやで
533デフォルトの名無しさん
2021/05/05(水) 10:06:42.44ID:0XQqNpVi Win32APIのStrCmpLogicalW
534デフォルトの名無しさん
2021/05/05(水) 11:25:44.55ID:/UG/+rZL535デフォルトの名無しさん
2021/05/05(水) 11:29:21.21ID:9+xzMV/Q うわぁ…
536デフォルトの名無しさん
2021/05/05(水) 12:30:31.81ID:gzgZcJa9 OSリリースごとに結果が変わる可能性があるので正規化に使用してはいけませんとか注意書きが書あるAPI
537デフォルトの名無しさん
2021/05/05(水) 13:00:05.01ID:kj6fybeU >>531
つ https://web.archive.org/web/19990224184613/http://www.asahi-net.or.jp/~ez3k-msym/comp/acccoll.htm
つ https://web.archive.org/web/19990224184613/http://www.asahi-net.or.jp/~ez3k-msym/comp/acccoll.htm
538デフォルトの名無しさん
2021/05/05(水) 14:28:38.34ID:wUp61E7s >>536
XP→10で変わって戸惑ったきおく
XP→10で変わって戸惑ったきおく
539デフォルトの名無しさん
2021/05/05(水) 15:35:37.41ID:dvz+9Kky 定期的にこの話題でるな
540デフォルトの名無しさん
2021/05/05(水) 16:25:24.24ID:7m6bX2W0 >>534
__le__, __ge__, __ne__がそれぞれ1, -1, 0と比較してるのって間違ってない?
使われなくて影響ないのかもだけど
functoolsのcmp_to_keyを使えば
sorted(paths, key=cmp_to_key(win_cmp))で済むよ
同じAPI使ってるのにソート結果が違うのは
os_sortedのバグだと思うのでissueあげとくといいかも
__le__, __ge__, __ne__がそれぞれ1, -1, 0と比較してるのって間違ってない?
使われなくて影響ないのかもだけど
functoolsのcmp_to_keyを使えば
sorted(paths, key=cmp_to_key(win_cmp))で済むよ
同じAPI使ってるのにソート結果が違うのは
os_sortedのバグだと思うのでissueあげとくといいかも
541デフォルトの名無しさん
2021/05/05(水) 18:38:45.20ID:sGblmxZ3 from functools import cmp_to_key
import ctyps
def win_sort(obj):
__def win_cmp(s1, s2):
____shlw = ctypes.windll.LoadLibrary("SHLWAPI.dll")
____return shlw.StrCmpLogicalW(str(s1), str(s2))
__return sorted(obj, key=cmp_to_key(win_cmp))
なるほど
import ctyps
def win_sort(obj):
__def win_cmp(s1, s2):
____shlw = ctypes.windll.LoadLibrary("SHLWAPI.dll")
____return shlw.StrCmpLogicalW(str(s1), str(s2))
__return sorted(obj, key=cmp_to_key(win_cmp))
なるほど
542デフォルトの名無しさん
2021/05/05(水) 19:54:48.41ID:MgJEgPkj543デフォルトの名無しさん
2021/05/06(木) 03:36:21.23ID:Za2B/gSh tkinterでMVCに挑戦してるんですが
例えばapp.verとかicon用base64文字列とかの定数?はどこに書くんでしょうか
アプリケーション(root)固有の情報は全部Cに書いてる人もいれば
非画像データはM、画像関係はVに置いてる人もいて
どう考えたらいいのか教えてください
例えばapp.verとかicon用base64文字列とかの定数?はどこに書くんでしょうか
アプリケーション(root)固有の情報は全部Cに書いてる人もいれば
非画像データはM、画像関係はVに置いてる人もいて
どう考えたらいいのか教えてください
544デフォルトの名無しさん
2021/05/06(木) 10:33:21.16ID:84/gBo5v >>540
母胎osの仕様が変わるんだから手に負えない
母胎osの仕様が変わるんだから手に負えない
545デフォルトの名無しさん
2021/05/06(木) 10:34:55.21ID:84/gBo5v546デフォルトの名無しさん
2021/05/06(木) 19:28:22.80ID:yKLn4IC5 tkinterで応答なしを回避するには
別スレッドに処理投げるしかない?
できればthreading使いたくない
別スレッドに処理投げるしかない?
できればthreading使いたくない
547デフォルトの名無しさん
2021/05/06(木) 19:30:05.47ID:1p3Rvf0Y Winならレジストリいじってタイムアウトと判断する秒数を変える
548デフォルトの名無しさん
2021/05/06(木) 20:30:14.34ID:v54vsLS/ import pandas as pd
df = pd.DataFrame([['ia','ib','ic'],['id','ie','if']],columns=['a','b','c'])
if not df==None:
_print(df)
ってやると
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
というエラーが出ましたが
仮にdf=Noneだった場合にdf.all()とかやると今度はNoneはallを持ってません的なエラーがでます
こういうときってどう対応すればよいでしょうか
df = pd.DataFrame([['ia','ib','ic'],['id','ie','if']],columns=['a','b','c'])
if not df==None:
_print(df)
ってやると
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
というエラーが出ましたが
仮にdf=Noneだった場合にdf.all()とかやると今度はNoneはallを持ってません的なエラーがでます
こういうときってどう対応すればよいでしょうか
549デフォルトの名無しさん
2021/05/06(木) 20:33:45.39ID:v54vsLS/ ちなみに今は
if not str(df)=='None':
ってやってます
if not str(df)=='None':
ってやってます
550デフォルトの名無しさん
2021/05/06(木) 20:54:15.24ID:yh3xJpCx >>548
そもそもNone判定したい場合は==じゃなくてisを使う
if df is Not None:
みたいな書き方にする必要がある
で、注意点として
df = pd.DataFrame()
みたいに、空のデータフレームで初期化してる場合はNoneではない(is Noneで判定してもFalseで返ってくる)
空かどうかを判定したい場合はemptyを使う
そもそもNone判定したい場合は==じゃなくてisを使う
if df is Not None:
みたいな書き方にする必要がある
で、注意点として
df = pd.DataFrame()
みたいに、空のデータフレームで初期化してる場合はNoneではない(is Noneで判定してもFalseで返ってくる)
空かどうかを判定したい場合はemptyを使う
551デフォルトの名無しさん
2021/05/06(木) 20:54:36.39ID:PCWSPh5c if df is not None:
に変える
理屈は込み入っているので他の人にお任せする
に変える
理屈は込み入っているので他の人にお任せする
552デフォルトの名無しさん
2021/05/06(木) 20:59:03.00ID:yh3xJpCx 間違ってNotが大文字になってた……notが正しい
553デフォルトの名無しさん
2021/05/06(木) 21:14:18.42ID:v54vsLS/554515
2021/05/06(木) 22:01:24.30ID:DEG1F9Nj >>506
pythonの初回インストール時に以下の英文が表示されるので
この英文部分をクリック
Disable path length limit
Changes your machine configuration to allow programs,including Python,
to bypass the 260 character”MAX_PATH” limitation.
pythonのアップデートもかねて
今使ってるバージョンの最新版インストーラーを公式からダウンロードして実行し
最後のダイアログに上の英文が表示されたらクリックしてみて
pythonの初回インストール時に以下の英文が表示されるので
この英文部分をクリック
Disable path length limit
Changes your machine configuration to allow programs,including Python,
to bypass the 260 character”MAX_PATH” limitation.
pythonのアップデートもかねて
今使ってるバージョンの最新版インストーラーを公式からダウンロードして実行し
最後のダイアログに上の英文が表示されたらクリックしてみて
555デフォルトの名無しさん
2021/05/07(金) 00:28:15.35ID:TdDivYCp >>554
配布用なのでロングパスは許さんマンにしました…
配布用なのでロングパスは許さんマンにしました…
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 自民・麻生太郎 副総裁 石破政権の1年は「どよーん」 高市政権の発足で「何となく明るくなった」「世の中のことが決まり動いている」 [Hitzeschleier★]
- 東京都「都民の税金1.5兆円が国に奪われている」「全国に分配されている」に地方民ブチギレ [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 【27歳会社員】「自慰行為に使うために」コインランドリーの乾燥機から24歳女性の下着など計11点(時価8万2080円相当)盗んだ疑い [nita★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★3
- ジャップ「カントの純粋理性批判読むお!!!」⇒全員上巻で挫折 俺恥ずかしいよ…😭 [731544683]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 麻生太郎が石破政権の1年を酷評「どよーんとして何も動かない感じだったな。それに引き換え高市政権は物事が動いている」 [597533159]
- 【速報】室井佑月、米山隆一との離婚を決意wwwwwwwwwwwwwwwwwwww [802034645]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★4
