X



Pythonのお勉強 Part70

レス数が950を超えています。1000を超えると書き込みができなくなります。
2023/03/04(土) 00:18:00.31ID:dUl31UkL0
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2023/08/31(木) 10:35:23.89ID:O9IKqF4q0
>場合はどうするの?
単にエラー吐いて終わり

>prmsの最後の値を
ではない
>そのmin(i, max_prm_index)でやってるように


prmsが1個の場合 → max_prm_index = 0
itemsを再帰したときの i → 0,1,2,,,,,,,,,,
min(i, max_prm_index)の値 → min(0,0)=0,min(1,0)=0,min(2,0)=0,,,,,,,

prmsが複数の場合 → 例max_prm_index = 2
itemsを再帰したときの i → 0,1,2
min(i, max_prm_index)の値 → min(0,2)=0,min(1,2)=1,min(2,2)=2
852デフォルトの名無しさん (ワッチョイ 4d9e-lN7b)
垢版 |
2023/08/31(木) 21:27:37.09ID:G16r3L3O0
uncompile6もdecompile3もpydumpckもmarshal使った逆シリアル化も
できないpycファイルの逆コンパイルどうやったらええんや
2023/08/31(木) 22:28:08.13ID:bCA9PkL70
>>851
>単にエラー吐いて終わり
それなら場合分け必須なので1件の場合と要素数が一致してる場合を含めて
最初から分岐させたほうが効率的

min(i, max_prm_index)はprmsが2件でitemsが4件のときだと
(prms[0], item[0]), (prms[1], item[1]), (prms[1], item[2]), (prms[1], item[3])になるでしょ
つまり不足してる要素数分だけprmsの最後の要素を適用し続ける
そういう処理を意図してないならやめたほうがいい

あとループもしくはイテレートのことを再帰と呼んでない?
2023/08/31(木) 23:27:03.60ID:MxLxGpNx0
>>853
>min(i, max_prm_index)はprmsが2件でitemsが4件のときだと
それは>>846の>prmsがitemsと同じ数だけ
とは違うしあなたが設定したルールだと思う

>あとループもしくはイテレートのことを再帰と呼んでない?
なにか問題が?
>最初から分岐させたほうが
全部を分岐するってこと?
>場合分け必須
から察するに、例えば
if itemsとprmsのチェック:
 if prms複数の場合 and :
  for item in items:
   ここに処理
 elif prmsひとつの場合:
  for item in items:
   ここに処理
みたいなことだろうか?

話はずれるけど前から条件分岐でこういうの疑問だったんだけど
if itemsとprmsチェック:
 raise
if 条件:
 pass
else:
 pass
みたいなことってしないほうが良いのだろうか?
>>846では意図的にif itemsとprmsチェック:rase
の部分を(それ以降の処理に関係ないので)省略したんだけど
855デフォルトの名無しさん (アウアウアー Sace-SPXT)
垢版 |
2023/08/31(木) 23:31:59.97ID:7sC80GbKa
shutil周りを調べていて気になったのですが
更新日時や作成日時が引き継がれるような、Windowsの通常のファイル移動は
shutil.copy2()で実現できますか?

調べるとos.system()にcopyコマンドを投げる方法なども出てきました
少し気になったのですが、そもそもWindowsの標準的なファイル移動ってcopyコマンドと等価なのでしょうか?
2023/08/31(木) 23:42:37.28ID:VJWa/tTF0
os周りはわざわざimportして頑張ってもどうせ互換性なんか無いし、
コマンド実行するのが確実で簡単にやりたいことがやれる
2023/09/01(金) 00:25:46.36ID:r2cK95F90
ふと思ったけどすんごい重いファイルをpythonスクリプトでmvなりコピーしたときって
OS側?で処理してる間はpython側で並列作業になりそう
要はpython側で

重いファイルを移動する処理()
print("まだ移動し終わっていないのにここ実行される")

ってなってもええんか?
2023/09/01(金) 00:46:42.98ID:wJDQ+FTE0
os.system()じゃなくてsubprocess.run()とか
asyncioのcreate_subprocess_exec()やcreate_subprocess_shell()で待ち受けて
2023/09/01(金) 01:35:23.83ID:l7PfhcLtd
>>854
enumerateとかminとか使わず、zipで処理しちゃえば?
>>848のrepeat_lastを無くしただけだけど

if len(prms) == 1 or len(prms) == len(items):
 for item,prm in zip(items,prms):
  item(prm)
860デフォルトの名無しさん (オイコラミネオ MM65-FN/f)
垢版 |
2023/09/01(金) 03:48:02.24ID:3/H3WgxVM
>>1
carnetsのデータが消えたのだが、
どうすればいいのか、、、
2023/09/01(金) 06:58:42.11ID:K1CWe1BUM
>>858
横だけど
良いヒントを得た
ありがとう
2023/09/01(金) 07:21:36.52ID:SrdLFIhrM
半可通だな
2023/09/01(金) 09:28:33.88ID:G4N8Tnic0
>>859
itemsが3つ、prmsが1つのとき結果はどうなった?

items = ["items","item2","item3"]
#prms = ["prm1","prm2","prm3"]
prms = ["prm1"]
if len(prms) == 1 or len(prms) == len(items):
 for item,prm in zip(items,prms):
  print(item,prm)
2023/09/01(金) 10:30:26.13ID:JR96MCqK0
shutil.copy(), shutil.copy2(), shutil.copyfile():

これらのメソッドは、ファイルの内容をバイトで読み取り、
コピー先のファイルに書き込みます。
ファイルのサイズが大きい場合、このプロセスは時間がかかりますが、
Pythonは他のタスクをブロックせず、他の操作を進行させます。

os.systemを使用した場合
子シェルを作成し、そのシェルでコマンドを実行します。
ファイルのサイズが大きい場合、コピーに時間がかかりますが、
os.systemはコマンドの実行が完了するまでプログラムの実行をブロックします。
そのため、他の操作を進行させることはできません。

osモジュールを使用した場合
ファイルの内容をバイトで読み取り、コピー先のファイルに書き込むため、
ファイルのサイズが大きい場合、このプロセスは時間がかかります。
しかし、Pythonは他のタスクをブロックせず、他の操作を進行させます。

subprocessモジュールのrun関数を使用した場合
ファイルのサイズが大きい場合、コピーに時間がかかりますが、
subprocess.runはコマンドの実行が完了するまでプログラムの実行をブロックします。
そのため、他の操作を進行させることはできません。

subprocess.runは、デフォルトで子プロセスの標準出力と標準エラーを
親プロセスにリダイレクトします。
そのため、コピー中にエラーが発生した場合、
エラーメッセージは親プロセスに表示されます。
865デフォルトの名無しさん (スフッ Sdea-v2/v)
垢版 |
2023/09/01(金) 12:48:44.57ID:5muTzi0Ed
subprocess は popen とともに使うもの
run なんてしたら subprocess の意味ない
初心者が誤解する嘘は良くない
2023/09/01(金) 13:02:04.03ID:sF2bDDsj0
んなこたーない
非同期も同期も両方使う場所がある
867デフォルトの名無しさん (アウアウアー Sace-SPXT)
垢版 |
2023/09/01(金) 14:01:33.97ID:RO0UJfOQa
>>864
詳細にありがとうございます
手続きの順序が前後したら大抵困るので
shutilよりもos.systemやsubprocessを使うべきという感じでしょうか

Windows標準のコピーもバイトを読んでバイトを書くという仕様なのでしょうか?
868デフォルトの名無しさん (アウアウアー Sace-SPXT)
垢版 |
2023/09/01(金) 14:03:08.18ID:RO0UJfOQa
すみません、Windows標準の移動も です
あちらは同じドライブ間のファイル移動だと一瞬で終わるので読み込み書き込みはしていないのかなと思ったのですが
2023/09/01(金) 14:13:41.59ID:sF2bDDsj0
プログラムの動作が遅くなるのはIOが詰まってる場合が大半なので、
ボトルネック部分が100%働くように調節するとむっさ速くなる

ファイルのコピーは遅延書き込みでまだ完了してないのに先に進むことでさらに速くなる
870デフォルトの名無しさん (ワッチョイ d95f-sVGh)
垢版 |
2023/09/01(金) 21:40:13.68ID:qVeR1pY40
>>868
同じドライブならファイルの中身を移動されるわけではなく、どこに格納されているかの位置情報を変えるだけだから速い。
2023/09/04(月) 13:47:18.73ID:nQJHAXPh0
コンストラクタの引数ってキーワード付きにできる?
2023/09/04(月) 14:50:35.53ID:38Xoielz0
できるよ
2023/09/04(月) 15:07:41.79ID:nQJHAXPh0
あ、できた
試せばいいだけだな
ぐぐってもそんなサンプル無いから出来ないのかと思った

単に複数の変数を一つに束ねたい、というだけの理由でクラスを作る時に、
コンストラクタに値をずらずら並べて渡すことになるけど、
それを順序で管理するのはどう考えてもおかしいと思ってた
2023/09/04(月) 16:47:03.86ID:VAGVSD2y0
そういうのはstruct使うといいかも
2023/09/04(月) 17:08:04.13ID:nQJHAXPh0
C言語だとstructだけど、pythonのはバイナリデータを扱う奴なのでは
2023/09/04(月) 17:20:17.40ID:VAGVSD2y0
c++のスレと間違えてたw
すまんね
877デフォルトの名無しさん (ブーイモ MMc7-aOfx)
垢版 |
2023/09/04(月) 18:49:15.11ID:JKt5eAqLM
>>873
リストをアンパックで渡せばスッキリ書ける
2023/09/04(月) 21:30:43.15ID:MbyPAFgv0
>>873
dataclassで簡略化できる
879デフォルトの名無しさん (ワッチョイ 4301-4OYV)
垢版 |
2023/09/05(火) 04:12:29.33ID:2K1Jd26A0
位置引数として渡された引数は関数内の処理の変数としては何という名前で渡されてるんでしょうか?
原理的に完全に無名ですか?
フレームの中では何かは付いてる?
2023/09/08(金) 07:59:23.00ID:KCF1PxQr0
関数定義のパラメータ名?
881デフォルトの名無しさん (ワッチョイ e305-+GqY)
垢版 |
2023/09/08(金) 09:20:44.03ID:8IHmD7Ej0
お詳しい方ご教示ください。

@Pythonのライブラリxlwingsで、ピボットテーブルを更新したいと思っています。
A今、FILE.xlsxには「Sheet1」にデータ、「Sheet2」にピボットテーブル(Pivottable1)が入力されています。
B以下のようにプログラムを組みました。
import xlwings as xw
app_excel = xw.App(visible = True)
wbook = xw.Book('FILE.xlsx')
wbook.sheets['Sheet2'].select()
wbook.api.ActiveSheet.PivotTables('Pivottable1').PivotCache().refresh()
wbook.save()
wbook.close()
Cエクエルは立ち上がるのですが、ピボットテーブルは更新されずにそのまま止まってしまいます。

どなたか原因を教えて頂けますでしょうか。
Pythonは3.10、Windows10を使用しています。
よろしくお願いします。
2023/09/08(金) 10:41:30.46ID:CadaQfwJ0
import xlwings as xw

# Excelアプリケーションを表示しない場合は、visible=Falseに設定
app_excel = xw.App(visible=False)

try:
# ワークブックを開く
wbook = xw.Book('FILE.xlsx')

# シート2を選択
sheet2 = wbook.sheets['Sheet2']
sheet2.select()

# ピボットテーブルを更新
pivot_table = sheet2.api.PivotTables('Pivottable1')
pivot_table.refresh()

# ワークブックを保存
wbook.save()
finally:
# ワークブックを閉じ、Excelアプリケーションを終了
wbook.close()
app_excel.quit()
2023/09/08(金) 10:54:24.65ID:CRh3f5WxM
ココで聞くよりAI添削した方が早いだろ
884デフォルトの名無しさん (アウアウウー Sae7-fXI3)
垢版 |
2023/09/08(金) 11:09:50.09ID:Qwh1dPVPa
excel の話題は 「excel python スレ」 でやってほしいな
2023/09/08(金) 11:35:25.91ID:Zl2xH9PI0
pythonからexcelへのアプローチはxlwingsとopenpyxlの2つがあって、
openpyxlはpythonの内容だけど、xlwingsはもうexcelというかVBAの内容なんだよな
どうしても駄目な部分以外はopenpyxlで頑張る方が幸せになれる
2023/09/08(金) 11:40:03.94ID:pGmKehjU0
pandasでやれ
887デフォルトの名無しさん (ワッチョイ e305-+GqY)
垢版 |
2023/09/08(金) 11:46:30.25ID:8IHmD7Ej0
ご回答ありがとうございます。
ご教示頂いたとおりにやってみましたが
「・・object has no attribute 'refresh'」
「pywintypes.com_error: (-2147352570, '名前が不明です。', None, None)」
とエラーが出ました。

これ以降は「excel python スレ」で伺ってみます。
お手数をおかけしました。
2023/09/08(金) 11:50:04.72ID:Zl2xH9PI0
pandasが別にexcelの機能を持ってる訳ではなくて、openpyxlのラッパーなだけ
そしてpandasを通すとインデックスとか付いた変なデータ構造を扱わないといけなくなる
2023/09/08(金) 15:54:50.44ID:CRh3f5WxM
そのエラーでピンと来ないならVBAでいいだろう
890デフォルトの名無しさん (ワッチョイ e346-ADg4)
垢版 |
2023/09/08(金) 18:01:03.69ID:hn6Lo9vu0
ピンと来るなら、もったいぶらず、教えてあげると良いじゃない。
2023/09/08(金) 19:42:42.46ID:l/IaMtio0
何でもかんでも教えるのは良くない
2023/09/08(金) 20:44:45.69ID:kFel51fR0
5chで質問者の成長とか考える必要ない
どんな奴か分からないから
2023/09/09(土) 00:17:57.19ID:zaCXHBrVa
こんな事も分からないの?
痴呆症を疑うレベルw

エラーメッセージ
object has no attribute 'refresh'

# ピボットテーブルを更新
pivot_table = sheet2.api.PivotTables('Pivottable1')
pivot_table.refresh()
894デフォルトの名無しさん (ワッチョイ b346-dpy9)
垢版 |
2023/09/09(土) 07:47:14.73ID:ZW9tstmG0
>>893
分からなくて相談に来た相手に、こういう言葉を投げる意味はあるのかな。

> こんな事も分からないの?
> 痴呆症を疑うレベルw
2023/09/09(土) 08:11:54.57ID:2NAxPIYI0
イキりたい年頃なので
2023/09/09(土) 08:54:51.39ID:p+ZV9obNM
>>894
だったらお前が教えれば済む話だろ
教えていないと言うことはお前も俺も同類なんだよ
2023/09/09(土) 11:24:59.08ID:o97DPu5k0
>>893
別の人ですがありがとうございます
2023/09/09(土) 15:49:31.85ID:FUE4d5Ey0
仮に宿題だろうがなんだろうが普通に解答を教えればいい >>891
自分が成長させてあげてるとか恩着せがましいにも程がある
回答者が与える影響など世界規模で見ればたかが知れてる
2023/09/09(土) 15:55:20.73ID:uQ6xa98E0
ワシが育てなければ

なんでもかんでも答え教えられると困るやつってようは
ワシの活躍する場が・・
みたいなことでしょ
うん、普通にキモい
2023/09/09(土) 16:02:46.03ID:PII51rQf0
え、どういうこと?
2023/09/09(土) 16:09:48.18ID:IGBPhOV00
AIに対してもなんでもかんでも教えるな
とか言ってそう
2023/09/09(土) 16:58:54.31ID:WX9adZSN0
バカばっかり
2023/09/09(土) 19:32:58.82ID:xE2yYEU3d
教える教えないの話だったのか、、、?
904デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 07:29:49.40ID:hps7g+0s0
30代Pythonバカチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
905デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 07:33:16.13ID:hps7g+0s0
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨

30代Pythonバカチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
906デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 07:33:52.54ID:hps7g+0s0
スレ主はチョンw
スレ主はチョンw
スレ主はチョンw
スレ主はチョンw
スレ主はチョンw

30代Pythonバカチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
907デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 08:34:38.19ID:hps7g+0s0
クソチョンは、
いきなりオレを攻撃しはじめた。

理由がわからず、過去の書き込みを調べてみると、
「馬鹿でもチョンでも」と書いたのが原因だとわかった。
もちろん、日本人なら知ってるが「馬鹿でもチョンでも」の
チョンは韓国人のことではない!

が、そのクソチョンはオレが韓国人を差別したと勘違いして、
猛烈におれを攻撃しはじめた。
そして、おれが反撃を開始したわけだ。

それが全ての始まり。
チョンは諸悪の根源!
2023/09/10(日) 08:37:28.23ID:adfDDVgWM
まだこんなことやってるヤツが居るんだな
仕事に活かせば良いのに
909デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 08:39:10.02ID:hps7g+0s0
そのクソチョンは、
もう何年もおれを攻撃し続けているわけだ。

自分の勘違いから人を攻撃しておいて、
まじで糞チョンだと思った。

チョンはそうなんだよ。
だから次に地震のあったときも、
チョンは日本人を強姦・虐殺するだろうな。
だからチョンは皆殺しにしなければならない。

それを覚えておくことだ!
2023/09/10(日) 08:40:46.79ID:BRsbEtkF0
こんなのどうやって仕事に使うんだよ
2023/09/10(日) 08:49:12.27ID:6MRCqhIwM
>>910
興味深いテーマを与えれば勝手に行動するみたいだから
人に聞かないとなんにもできないお前らよりコイツの方がよっぽど使えるだろう
912デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 08:52:38.42ID:hps7g+0s0
おれは元々、差別はいかん!
という主義だった。

そのおれに差別発言させるまで
攻撃をつづけたんだから、
まあ、恐るべき怨み粘着性だなと感心する。
調べてみると、それがチョンの性質らしい。

それで決心した。
おれは死ぬまでチョンを差別するぞ、と。
チョンを全員半島に追い返すまで戦います!
913デフォルトの名無しさん (ワッチョイ 4e46-dpy9)
垢版 |
2023/09/10(日) 09:39:59.07ID:RgTg1P0N0
之を如何せん、之を如何せんと曰わざる者は、吾之を如何ともするなきのみ
と古人は言いました。分からない事は積極的に訊きましょう。
914デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 10:58:24.80ID:hps7g+0s0
おれは元々、差別はいかん!
という主義だった。

そのおれに差別発言させるまで
攻撃をつづけたんだから、
まあ、恐るべき怨み粘着性だなと感心する。
調べてみると、それがチョンの性質らしい。

それで決心した。
おれは死ぬまでチョンを差別するぞ、と。
チョンを全員半島に追い返すまで戦います!
915デフォルトの名無しさん (アウアウウー Sa47-/bgi)
垢版 |
2023/09/12(火) 19:54:34.04ID:Y185PNUOa
Pythonやるならまず「多重継承」な!

なぜ多重継承かというと、自然言語処理において語句の意味は「文脈」によって異なるからだ!

随意筋  不随意筋
  ↖   ↗
   チンポ

チンコの随意筋と不随意筋
http://d.hatena.ne.jp/tottokotokoroten/20130516/1368716650

https://mobile.twitter.com/daikidomon/status/1385368820240437248

土門大貴/Daiki Domon
@daikidomon
Pythonの多重継承がわかりづらい。
継承クラスの左のクラス名を指定とかあたおか。
https://twitter.com/5chan_nel (5ch newer account)
https://twitter.com/5chan_nel (5ch newer account)
2023/09/12(火) 20:48:15.22ID:gN0G7IVm0
多重じゃない継承すら読みにくくない?
917デフォルトの名無しさん (アウアウアー Sa06-bjEX)
垢版 |
2023/09/13(水) 06:55:25.38ID:fd6I2zsCa
多重継承とか何に使うのか想像すらつかんけどpathlibがガッツリやってるらしいね
何に使うの?
ほんとに想像つかない

クラスを集合と捉えて排反でない分割したいこととかそんなあるか?
2023/09/13(水) 07:35:15.02ID:es5nzpicM
そーそー普通ダイヤモンド継承だよね~
2023/09/13(水) 17:59:56.20ID:YINB0qAa0
入れ子した辞書同士の同定って
d1 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":3}}}
d2 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":3}}}
キーと値の総当りをやるのが確実なんだろうけど
if d1==d2でいいよね・・?と思ってふと値がインスタンスだった場合もやってみたら
class Hoge:
 def __init__(self,a):
  self.a=a
d1 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}
d2 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}
d1==d2 # False

Falseだった
辞書の値が、辞書 or リスト or str or int or boolean or Noneしか取らない
って前提だったらもうd1==d2でいいか・・
json.dumps(d1)==json.dumps(d2)ってのもどこかでみたことあるけどなんかメリットあるのかこれ
2023/09/13(水) 19:05:29.66ID:mZetXESn0
==は同じオブジェクトという意味だしな
インスタンスは別のオブジェクト
921デフォルトの名無しさん (ワッチョイ 0e33-erq7)
垢版 |
2023/09/13(水) 21:33:39.48ID:2ECL/EIJ0
>>919
class Hoge(int):
def __init__(self,a):
self.a=a

d1 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}
d2 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}
print(d1==d2) # True
d1 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(1)}}}
d2 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}
print(d1==d2) # False
2023/09/13(水) 21:41:47.97ID:FudrDNP00
Hogeを値で比較したいなら__eq__と__hash__を書くかdataclass的なものを活用するか
2023/09/13(水) 21:58:52.60ID:GC1GSAPg0
へー、javaみたいなのあるんだ
924デフォルトの名無しさん (ワッチョイ 0e33-erq7)
垢版 |
2023/09/13(水) 22:33:54.03ID:2ECL/EIJ0
__hash__は無理じゃね
925デフォルトの名無しさん (ワッチョイ 0e33-erq7)
垢版 |
2023/09/13(水) 22:54:25.82ID:2ECL/EIJ0
https://ideone.com/eiiqyF
これって、これ?
https://docs.python.org/3/c-api/stable.html#c-api-stability
926デフォルトの名無しさん (アウアウウー Sa47-bpS4)
垢版 |
2023/09/13(水) 23:35:03.93ID:ljzzNVbDa
>>919-920
==は同じオブジェクトという意味ではない

x1 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":3}}}
x2 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":3}}}

print(x1 == x2)
print(x1 is x2)

class Hoge:
def __init__(self,a):
self.a=a

d1 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}
d2 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}

print(d1 == d2)
print(d1 is d2)
2023/09/14(木) 15:38:55.11ID:E7PcL1rL0
ようは早い話が
Hogeがもし非自作だったりしたときも
__eq__で拡張しとけば、いちいちforとかで回したりせずに
d1==d2だけでイケるってことでいいのか
928デフォルトの名無しさん (ワッチョイ 0e33-erq7)
垢版 |
2023/09/14(木) 20:02:46.79ID:x6b4sEhy0
わざわざ__eq__だけ実装するよりもdataclassのほうがいいと思う
2023/09/14(木) 21:20:20.60ID:Z5WLuif8r
今Paizaで勉強してる
一通り終えたら入門書として、入門Python3 第2版を買おうと思うのですが、他に良いのあれば教えてください
2023/09/14(木) 21:40:35.40ID:mJzwIL1R0
pythonを本で勉強するという発想が無かった
2023/09/14(木) 22:01:47.20ID:XNzOozgR0
体系的に学ぶには本がよい
2023/09/14(木) 22:10:24.13ID:PDE0vufJ0
本読むと良いよ
めっちゃ興奮するしエロ本と変わらん
2023/09/15(金) 00:41:34.46ID:AGwvaccFa
プロ向きなら、Perfect series が良いけど、

パーフェクト Python [改訂2版] (PERFECT SERIES 5)、2020

改訂2版 パーフェクトRuby、Rubyサポーターズ、2017
パーフェクト Ruby on Rails 【増補改訂版】 (Perfect series)、2020
2023/09/15(金) 01:21:30.34ID:/EOrssYW0
>>933
Ruby関係ないし
2023/09/15(金) 01:43:25.39ID:1n4P5OHW0
>>933
ネタにマジレスするけど
そこはperlじゃないん?
2023/09/15(金) 04:07:37.47ID:cd4Mhd650
RORってGPLに汚染されて使えなくなったって聞いた
2023/09/15(金) 07:25:53.48ID:p7MIb3Fq0
>>929
paizaは学習コースあるんだから本なんて要らんが
2023/09/15(金) 08:52:17.62ID:StBTamIiM
>>929
本で仕入れた知識なんて糞の役にも立たん
ITは実践あるのみ
実用になるコードを書きまくって動かしまくれ
2023/09/15(金) 08:55:53.02ID:Y0aMdWmH0
effective pythonはたまに開いて刺激を得てる
2023/09/15(金) 10:38:10.58ID:X7EUN8b/0
本で仕入れた知識を実践するんやで
2023/09/15(金) 10:48:21.69ID:XTzSJ3sy0
本ばかり読んでもなんにもならないが
本を読まないのは馬鹿
2023/09/15(金) 10:52:59.05ID:Y0aMdWmH0
余計な苦労を避ける為の上手い書き方に納得するには、
一度は余計な苦労をしてる必要があるんだよな
943デフォルトの名無しさん (アウアウアー Sa06-bjEX)
垢版 |
2023/09/15(金) 18:32:02.40ID:KXmk4gupa
Pythonは本かサイト使いながら勉強するのが良いよ
Pythonチュートリアルを読み解く実力がある人なら必要ないけど
そうじゃないなら、体系的知識を身につけるには入門書読むのが早い
というかベスト
944デフォルトの名無しさん (ワッチョイ 0e33-erq7)
垢版 |
2023/09/15(金) 20:35:47.41ID:BvXWB9/L0
Paizaの入門コース終えたなら何か作ってみたらいいのに
2023/09/15(金) 21:53:30.72ID:Y0aMdWmH0
っていうか、まず作るんだよ
で、本を読んでもっといい方法を知る
2023/09/16(土) 00:50:04.13ID:GOLJ0aM50
書籍で言ったら秀和システムの『実践100本ノック』はどれも良かった
O'Reillyが一番なんだろうが
2023/09/16(土) 00:52:51.04ID:Ki/MMBdQa
Effective Ruby は良い。
バグが起きにくい、安全で効率的なコーディングと、
間違いやすいポイントを解説

Effectiveシリーズも、日本人の著者もあるから、気を付ける。
「Effective Modern C++」の元祖・Scott Meyers と関係ないのに、
Effectiveと付けている本もある

その点、Effective Rubyは、Meyersにレビューをしてもらっている。
Effective Python は知らないけど
2023/09/16(土) 08:19:40.72ID:6K0or2YE0
effective perlは読んでる最中にperlに対する興味を失ってしまった
949デフォルトの名無しさん (ワッチョイ 0f01-JSeT)
垢版 |
2023/09/16(土) 09:20:44.97ID:FQ6fYHli0
T,o,k(迷惑という方は←をあぼーんしてください。)

家族に紹介する側になり、加えて¥4000×人数をGET!
https://i.imgur.com/X3cw4bL.jpg
2023/09/16(土) 10:54:43.68ID:FZJflFW60
>>949
エロ動画多いよな
2023/09/16(土) 11:11:03.27ID:VYkZR1o+M
自分で書くのは時間の無駄
今はChatGPTにこんなコードが欲しいと聞けば一瞬で書いてくれる
プログラマにはもはやコードを書く能力は求められていない
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況