Pythonのお勉強 Part72

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 03c5-hEBs)
垢版 |
2023/12/27(水) 15:42:25.63ID:sVIMH2iW0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら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/
※前スレ
Pythonのお勉強 Part71
https://mevius.5ch.net/test/read.cgi/tech/1695168821/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2デフォルトの名無しさん (ワッチョイ a3c5-hEBs)
垢版 |
2023/12/27(水) 15:43:24.25ID:sVIMH2iW0
●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その59
https://mevius.5ch.net/test/read.cgi/tech/1689241721/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ?
2023/12/28(木) 00:18:55.96ID:PfV0RGQH0
json.loads()で読み込んだすっごい深い階層のどこかにある特定のキーの中身を取り出すのはどうしたらいいだろう
2023/12/28(木) 07:41:51.96ID:RaV9XYpTM
前スレWindowsのショートカット(.lnk)はリンク先を呼び出すスクリプトだから
直接処理したいならLinuxと同じようにシンボリックリンクを作らないとね
2023/12/28(木) 07:46:51.07ID:RaV9XYpTM
って書いたけどバイナリ解析して取り出でWshShortcut呼ぶ必要が無くなるな
6デフォルトの名無しさん (ワッチョイ a372-Vioh)
垢版 |
2023/12/28(木) 09:54:35.25ID:GpULO4aD0
>>3
スタック、キュー、再起
好きなの選べ
2023/12/28(木) 10:03:58.31ID:3LJz5hCH0
BeautifulSoupだと階層無視して検索とかできるけど、
あんな感じでキーは判ってるので構造に対して柔軟に取得したい

再帰で辞書かリストか判断しながら辿っていけばいいのは判るけど、
自分でいちいち書きたくない
2023/12/28(木) 12:00:13.88ID:h0GDpcwsH
>>3
glom
https://glom.readthedocs.io/en/latest/tutorial.html
2023/12/28(木) 12:01:30.42ID:h0GDpcwsH
>>3
glom
https://glom.readthedocs.io/en/latest/tutorial.html
2023/12/28(木) 12:23:16.61ID:3LJz5hCH0
いいね
globみたいに**で飛ばすのか
リストで返ってくるのがちょっと意外だった
2023/12/28(木) 16:10:11.78ID:Cpi03Itga
古典的な方法として正規表現があるけど
それではだめなの?
2023/12/28(木) 16:30:57.91ID:3LJz5hCH0
htmlのスクレイピングでも、こんなもん直接正規表現で抽出した方が早い、
という局面はよくあるけど、回り道して正攻法でやった方が結局うまく行く
2023/12/28(木) 22:45:10.41ID:EC2vWFQE0
XPathを模したJSONPathってのがあって
Python用のモジュールもあるからそれのが潰し効く
2023/12/31(日) 23:26:27.13ID:zAD+40EH0
Ruby なら、dig で、
配列はインデックスで、ハッシュはキーで指定できる

require 'json'

# 改行を削除する。削除しなくても同じ結果
json_str = <<'JSON'.delete( "\n" )
[{"あ":[{"い":1}, "x"]}]
JSON

p json_obj = JSON.parse( json_str )
#=> [{"あ"=>[{"い"=>1}, "x"]}]

p json_obj.dig( 0 ) #=> {"あ"=>[{"い"=>1}, "x"]}
p json_obj.dig( 0, "あ" ) #=> [{"い"=>1}, "x"]
p json_obj.dig( 0, "あ", 0 ) #=> {"い"=>1}
p json_obj.dig( 0, "あ", 0, "い" ) #=> 1
2024/01/01(月) 02:21:58.28ID:/RwaAIWF0
今からpyでGUIやるとしたら何がお勧め?
ちなみに社内利用のツール作りたい
2024/01/01(月) 05:29:55.18ID:8JDkd5n2M
PythonはGUIがとても弱い
これだけ流行ってもPythonでゲーム作る人少ないでしょう
2024/01/01(月) 09:31:16.04ID:FY+JXkGU0
強弱は関係ない
2024/01/01(月) 09:41:18.11ID:LVCnPGal0
GUIは簡単にやれるならやってみようと手を出したけど、
全然簡単じゃない上にやりたいのと違うのしかできない
どうせ自分しか使わないならGUIにする必要もない
ということで見限ってる
2024/01/01(月) 10:14:09.09ID:Y+kcGNY5r
>>17
ライブラリが弱いって話だから大いに関係ある
2024/01/01(月) 16:58:47.27ID:TV87FrAo0
tkinterかPysimpleGUI
2024/01/01(月) 17:21:32.37ID:rZ1QEI030
目指すものによる
pygame(SDL)やEel(HTML)なんてのもあるし
2024/01/01(月) 20:04:03.89ID:yqkPDDz60
fletが好き
2024/01/02(火) 05:16:39.05ID:H+L4L0Nu0
copilotすげーな
もっと短くできない?って聞くと毎回短くなって勉強させてくれるわ
2024/01/02(火) 10:17:40.38ID:rCzOacgf0
pysimpleguIってデフォルトのフォントサイズ変えらんないの?
いちいち設定するのめんどくせー
2024/01/02(火) 10:31:53.39ID:rCzOacgf0
あ、出来たわ
サイコー!
2024/01/02(火) 10:36:02.44ID:YHSrr3CM0
UIが欲しい訳でもないんだよな
設定やら入力はファイルから読み込むとかの方が楽に決まってる
動いてる最中に現在のステータスを表示させたり、
オプションをリアルタイムで変更したりしたい

CUIだと、コンソールにスクロールして表示されるのを目で追うとかになるし、
リアルタイムでの変更もできない
2024/01/02(火) 17:06:08.58ID:YHSrr3CM0
list1がインデックスのリストで、その[0:2]の内容をインデックスとした
list2の一部を取り出したい時はどう書いたらいい?
2024/01/02(火) 17:24:28.33ID:yAberLu60
>>26
>動いてる最中に現在のステータスを表示させたり、
>オプションをリアルタイムで変更したりしたい
両方ともCLIでもできるでしょ
2024/01/02(火) 17:28:18.91ID:yAberLu60
>>27
[list2[i] for i in list1[0:2]]

どういう形で取り出したいかとか
取り出した後にどう使いたいかで適切な方法は変わる
2024/01/02(火) 19:39:00.00ID:YHSrr3CM0
ああ、それだ
どうやってもループ的になるのは避けられないんだな
1行で書けるというだけで
2024/01/02(火) 21:01:40.65ID:YHSrr3CM0
def fill_rcsv(field, name, position):
  candidate = search(name, field)
  for position in candidate:
    fill_rcsv(field, name, position)

要素だけ書くとこんな感じの再帰呼出しで、
複数回呼ぶとうまくいかない
  for position in candidate[0:1]:
みたいに1回だけにするとばっちり動く

再帰で何かが上書きされてるんじゃないかと疑ってるけど、
そんな筈は無いし、何がおかしいんだろう
2024/01/02(火) 21:34:01.44ID:MhnXHP5rr
>>30
numpy使えば
arr2[arr1[0:2]]
2024/01/02(火) 21:36:03.53ID:MhnXHP5rr
>>31
何やりたいのか知らないけど引数のpositionが意味ないからそりゃ動かないだろうな
2024/01/02(火) 21:48:28.13ID:YHSrr3CM0
なんで意味ないの?
35デフォルトの名無しさん (ワッチョイ b18d-nK/n)
垢版 |
2024/01/02(火) 21:51:12.00ID:gERpN8hs0
map(lambda x: list2[x], list1)
2024/01/02(火) 22:23:44.72ID:YHSrr3CM0
実際には終了条件の為にrestという変数も渡してる
fill_rcsv()の中でrest.pop(0)する
最初から空なら終了

呼び出しの時のrestを、rest.copy() にするだけで挙動が全然違う
再帰の時の引数にリストを渡した時の呼び出し元に対する影響がよく判らない
2024/01/02(火) 22:56:33.18ID:iDasqM+7M
>>36
いや再帰どうこうの以前に>>31見ただけでなんか設計おかしいのがわかるでしょ
candを計算するのにname, fieldしか使ってないのに
変数名positionをcandから取り出したやつで上書きしてイテレートしてる
2024/01/02(火) 22:57:38.80ID:iDasqM+7M
副作用がばりばりあってそれでも想定通り動くコードなのだとしたらその部分だけ見せてもわかるわけないしどっちにせよおかしい
2024/01/02(火) 23:06:10.04ID:YHSrr3CM0
省いちゃったけど、positionはfieldを更新するのに使ってる

ループが1重ならちゃんと動作するので、設計自体はおかしくないんだけど、
2回目以降を呼ぶ時に前回の影響が何故か残ってるとしか思えない
2024/01/02(火) 23:27:49.93ID:tsCK1S6o0
>>36
>呼び出しの時のrestを、rest.copy() にするだけで挙動が全然違う
そりゃそうでしょ

>再帰の時の引数にリストを渡した時の呼び出し元に対する影響がよく判らない
再帰関係ないじゃん

引数にリストを渡した時の呼び出し元に対する影響がよく判らないのに
設計自体がおかしくないと思うのが間違い
2024/01/02(火) 23:32:04.47ID:YHSrr3CM0
そりゃそうでしょ、というのが全く実感できないんだよな
なんで動かないのか不思議で仕方ない

その根拠を知りたくて質問してるのに、
そんなの動かないよーだけでは同類
2024/01/03(水) 00:11:45.62ID:1+Mz/XnMM
質問の仕方でpython弱いのが分かるレベルなのに
開き直って甘えてんなあ
teratailとかでそんな聞き方したらぶち殺されるぞ
あまりスレ民の優しさに甘えるなよ
2024/01/03(水) 00:20:02.95ID:WAHmHtMV0
Elixir の再帰では、リストの要素をすべて走査したら終了する。
引数には、accumulator・蓄積変数を持っている

リストを、[ head | tail ] に分解して、headを処理する。
tailを引数に渡して再帰する

終了条件は、tailが空[ ]になった時

[1, 2, 3] → [1,[2,3]] 1を処理
[2,3] → [2, [3]] 2を処理
[3] → [3, []] 3を処理
[] → 終了
2024/01/03(水) 00:24:10.82ID:tiof+l/G0
再帰呼び出しがうまくいきません
・終了条件のための引数restは省略しています
・引数positionの参照は省略しています
・引数fieldの更新も省略しています
・引数positionの算出も省略

重要な部分が省略されてて不具合なんて分かるわけがない
2024/01/03(水) 00:30:19.66ID:WAHmHtMV0
Ruby のオブジェクトは、shallow copy だから、参照しかコピーされない。
内側のオブジェクトはコピーされずに、同一オブジェクトを使い回す

deep copy は難しい。
Python もそうなのかも?
2024/01/03(水) 00:31:22.73ID:LcImUTxt0
添削を依頼してる訳じゃないんだよな
400行のコード貼ったって誰も読まない
ループじゃ無ければ動く、という部分をとっかかりに
はまりポイントが思いつく人だけ反応してくれればいい
2024/01/03(水) 00:32:41.65ID:1+Mz/XnMM
今後もプログラミング続けるなら、まず質問する時に、後出し後出しで事故ってるとこをどんどん出すのはやめたほうがいい
教える側が普通に想像する事態について丁寧に説明しても、あとからあとから「いや、実はこうなんで」って出てくるなら、
どんな初心者の変なコードにも対応できる一般論や抽象的な話しかできなくなってしまう
そうなると有意義なアドバイスは難しい

それとは別に、ごくまともな指摘をもらっておいて
いや俺はわかってる、設計はあってる、でもなんかおかしい、俺は悪くない みたいなことを言わないほうがいい ムカつくし、単に嘘をついてるから
断片的な話だけで完全に設計間違ってることがわかるレベルで間違ってる
2024/01/03(水) 00:39:15.47ID:LcImUTxt0
丁寧に説明してないやんw
2024/01/03(水) 00:51:01.69ID:KdVdKcTt0
参照渡しと値渡しの概念すら理解してないんだろ多分
2024/01/03(水) 00:57:56.55ID:/ozK3YEK0
高卒SES共が喚きおるw
2024/01/03(水) 01:11:16.06ID:LcImUTxt0
結論としては、deepcopy()で解決した
ピンと来た人いるかな?
2024/01/03(水) 01:26:32.45ID:1Vhp1t1B0
>ループが1重ならちゃんと動作するので、設計自体はおかしくないんだけど、
>2回目以降を呼ぶ時に前回の影響が何故か残ってるとしか思えない
ここジワるな
2024/01/03(水) 01:56:55.37ID:LcImUTxt0
リストをコピーして渡したいだけなのに、別モジュールのimportまで要ると思わんやん

ぐぐって見つかる再帰呼び出しの例は、再帰の魔法みたいな部分を強調したいので、
そんな面倒くさいケースは紹介しない

list.copy()というそれっぽいものが用意されていて、
大抵はそれでちゃんと別物として扱ってくれるので疑ってなかったのが敗因

浅いコピーと深いコピーの違いはぶっちゃけまだよく判ってない
2024/01/03(水) 03:27:46.18ID:1+Mz/XnMM
ここまでで二重配列って説明一切出てないけどどうやってバグらせたかはわかるよ
そもそも再帰なのに入れ子のミュータブルをdeepcopyで渡さないといけない時点で書き方確実に間違ってるからどうでもいい
2024/01/03(水) 09:36:00.75ID:Hn1laHOqd
再帰関数の中でディープコピーとは
ヘビーなモノ作ってるねぇ
2024/01/03(水) 10:38:21.88ID:ddCxQkeE0
やべーな…
57デフォルトの名無しさん (ワッチョイ b1d7-jLm+)
垢版 |
2024/01/03(水) 12:42:33.64ID:8a8+YZHz0
>>53
>浅いコピーと深いコピーの違いはぶっちゃけまだよく判ってない
もう答え出てるやん
2024/01/03(水) 15:04:21.23ID:g3N633bF0
荒っぽく説明すると
デスクトップのショートカットだけコピーするのが浅いコピー
ショートカットの中身までコピーするのが深いコピー
2024/01/03(水) 15:11:36.20ID:EtnQA6qj0
1. listを渡す
2. list.copy()した結果を渡す(shallow copy)
3. list.deepcopy()した結果を渡す(deep copy)

ショートカットだけコピーするのは1じゃないか?
2024/01/03(水) 16:16:50.31ID:TWtcN/3Cr
だろうね
再帰でイミュータブル渡すならまずコピーでなく参照を渡して済むことがほとんどだし
そうじゃないならリストで渡さずタプルにして値で渡せばいい
あらゆる意味で変
61デフォルトの名無しさん (ワッチョイ e57c-lTP4)
垢版 |
2024/01/03(水) 16:17:41.41ID:9d0scbEX0
>>26
遅レスだけどWebで良いやん
streamlitみたいなのでサクッと作れば良くね?
62デフォルトの名無しさん (ブーイモ MM19-MN+v)
垢版 |
2024/01/04(木) 08:43:33.03ID:Bfa1kVrNM
>>61
これ
もうネイティブアプリの時代じゃないんだよな
2024/01/04(木) 11:09:29.68ID:TXiVOLS30
webなのかー
ブラウザでやること自体のメリットはあんまり感じないけど、
ハードルが低いなら巻かれてみよう
2024/01/04(木) 12:24:20.61ID:JYOy60Zk0
俺はネイティブ派だけどね
やはり速度的に全然違うし
ただプログラミングスタイルとしてネイティブは終わってる
2024/01/04(木) 12:44:57.47ID:sQEt7tpm0
かないしことにwebについていけてない俺
2024/01/04(木) 12:46:29.15ID:TXiVOLS30
入力と出力の部品が一揃いあって使い慣れたものが目の前にあるじゃろ
という話なんだろうな
いろんなプラットフォームを意識する必要もない
2024/01/04(木) 12:49:45.92ID:TXiVOLS30
組み込みとか、金融とか、PGの仕事のジャンルという大きなくくりの一つとして、
webがあるんだよな
どこかの会社のホームページ作る仕事がそんなにあるの?
という話でもないらしい
2024/01/04(木) 13:17:29.54ID:soqHQibb0
何でもかんでもWebで作ろうとするのも何でもかんでもネイティブで作ろうとするのと同類
69デフォルトの名無しさん (ワッチョイ b153-nK/n)
垢版 |
2024/01/04(木) 14:36:17.83ID:Dez+na860
redditかなんかでwebはゴールデンハンマーじゃないって言ってる人いたな
70デフォルトの名無しさん (ワッチョイ b13c-aezk)
垢版 |
2024/01/04(木) 18:14:28.57ID:AtEpitve0
pythonでスクレイピングを行うvbaを起動するとTimeoutになってしまうんだけど、どうしたいいでしょうか。
ただ、VBA単体で実行するとブラウザは起動します。

エラー文:TimeoutError The driver failed to open listening port 127.0.0.1:54568 within 10s

■python構文
app = win32com.client.Dispatch("Excel.Application")
app.Visible = 1
app.Workbooks.Open(Filename=r"C:\XXX\XXX\XXX\XXX.xlsm")
app.Application.Run('OpenScrping02')

■VBA構文
Dim Driver As New ChromeDriver
'Dim Driver As New Selenium.ChromeDriver
Dim XPath As String
Dim element As String
Dim FWFlag As Boolean
Dim myBy As New By
Dim tmp As String

Driver.Get "chrome://settings/defaultBrowser"
↑でエラー文が発生します
2024/01/05(金) 10:38:06.98ID:bgnh+40l0
ここでnuitka知って使ってみたんだけど、作ったファイルがもれなくウイルス判定されちゃう。
どしたらいい?
72デフォルトの名無しさん (ワッチョイ e57c-lTP4)
垢版 |
2024/01/05(金) 15:42:25.38ID:OXJtFwUv0
exe化しなきゃ良いんじゃね
寧ろexe化って何でするの?
2024/01/05(金) 15:54:44.47ID:CRLJuRKT0
pythonが使えない人に使ってもらう為じゃ
74デフォルトの名無しさん (ワッチョイ e57c-lTP4)
垢版 |
2024/01/05(金) 16:16:04.20ID:OXJtFwUv0
だからさstreamlitみたいなのでサクッとWebアプリ化して自社鯖なりクラウドにおいてURL叩くだけで使わせれば良いじゃん
わざわざexe化して配布して回るの?
修正とかしたらまた配り歩くの?
2024/01/05(金) 19:36:56.21ID:CRLJuRKT0
自社サーバーやクラウドが使えない企業なんじゃ
2024/01/05(金) 20:17:32.46ID:g/+l7Xoo0
>>71
コンパイル中にウィルス判定くらうからびびるね
2024/01/05(金) 20:59:15.61ID:P3pj9U7P0
raw=pandas.DataFrame({…
gb=raw.groupby(['name1','name2'])
gbmaxts=raw.loc[gb['totalScore'].idxmax(),:]
とやって、グループごとのtotalScore最大値の行を抜き出したいのですが、
問題はtotalScoreが重複した場合、どれを抜き出すか選べないのです。
score2というのがあって、重複した場合それの最大値で抜き出したいのですが、
どうやって記述すればいいでしょうか?
2024/01/05(金) 22:53:58.62ID:CVYX6lXR0
>>70
外部のスクリプトからExcelを開いたときはアドインとかライブラリへの参照が自動で追加されてないからとか?
エラーの内容がちょっと違う気もするけど念のためVBAで追加するようなコードを書いてみては
2024/01/05(金) 22:56:36.81ID:CVYX6lXR0
>>77
もっといいやり方がありそうだけど
gb=raw.groupby(['name1','name2’]).apply(lambda x: x.sort_values([“totalScore”, “score2”], ascending=False))とか
2024/01/05(金) 23:13:15.31ID:esWN4e6y0
>>74
exeが好っきゃねん
2024/01/05(金) 23:14:45.64ID:/M3pFdhP0
悪そうなexeは大体ウィルス
2024/01/05(金) 23:41:15.38ID:gyQRIy730
windowsならbatかpslでpython3を叩く自動スクリプト組んで配布すりゃよくね?初回起動時はポータブルなpythonをダウンロードするようにしてさ
83デフォルトの名無しさん (ワッチョイ e57c-lTP4)
垢版 |
2024/01/06(土) 05:01:59.44ID:JjfDjvUq0
今時の企業PCでexeファイルを許可なしでインスコ出来る事有る?
大抵は監視ソフト入っててインスコ出来ないようになってるよね
システム部門に申請して云々って手続きが必要とかさ
84デフォルトの名無しさん (ワッチョイ 6e64-aezk)
垢版 |
2024/01/06(土) 13:03:27.75ID:Bm30fRbr0
>>78
ありがとうございます。他を調べても同様のケースがないため、大変助かります。
可能でしたら、外部スクリプトから実行する際の構文などをご教示いただけないでしょうか。
また、改善するか不明ですが、現状のPythonでブック開く・マクロ実行までを、Pythonでブック開くまでにしてそれ以降はOpenイベントでマクロを実行する方法を試してみようと思います。
2024/01/06(土) 13:11:34.66ID:O8iz2Lme0
print('' in 'abc')
はTrueになる

print('abc'.index(''))
も0になって、
print('abc'.index('a'))
と区別が付かない

その文字が含まれるかどうかのテストに''ならFalseになるように
書くにはどうしたらいいだろう
86デフォルトの名無しさん (ワッチョイ ed68-xj2q)
垢版 |
2024/01/06(土) 15:02:18.93ID:B8r3vk8n0
なんじゃ?
2024/01/06(土) 15:14:44.79ID:O8iz2Lme0
そういう方針なのかと思ったら、
print('' in {'a', 'b', 'c'})
print(None in {'a', 'b', 'c'})
こういうのはちゃんとFalseなんだよな
2024/01/06(土) 15:16:09.97ID:UVNrTgIa0
先に空文字列と比較して弾く
2024/01/06(土) 15:23:37.20ID:x5UhZuS4M
まず 'ab' in 'abc' をその集合表記で書いたらどうなるか考えてみるべきだな
2024/01/06(土) 16:41:54.16ID:zuoTYpca0
pythonではそうなってますで終わりと言われればそれまでだが
包含か一致かの違いと考えれば辻褄が合うような
2024/01/06(土) 16:43:39.27ID:DBEfGZD30
>>83
会社にもよるし、部署にもよる
2024/01/06(土) 16:58:54.42ID:O8iz2Lme0
print('' in 'abc')
for c in 'abc':
print(c == '')

print('' in ['a', 'b', 'c'])
for c in ['a', 'b', 'c']:
print(c == '')

どちらもイテレータの中身のチェック
一番上だけTrue
2024/01/06(土) 17:17:20.43ID:x5UhZuS4M
len('')
len('a')
len('ab')
これは同じか?
2024/01/06(土) 17:22:06.80ID:x5UhZuS4M
in演算子について誤解があるようだな
print('ab' in 'abc')
を書いてみてわからなかったらあきらメロン
95デフォルトの名無しさん (ワッチョイ b119-nK/n)
垢版 |
2024/01/06(土) 18:53:00.25ID:TtodDVSd0
そう決められてるからで良いと思う
2024/01/06(土) 18:59:45.88ID:O8iz2Lme0
不便だし他と不整合だしメリットが見つからないし覚えにくい
最初にそうしちゃったから今更変えられないだけに見える
97デフォルトの名無しさん (ワッチョイ 4690-NoMX)
垢版 |
2024/01/06(土) 20:39:07.75ID:R3OUyaI00
>>96
勘違いしてるが、別に君のために開発された言語ではないよ。
君が言語に合わせるか、君が別の言語に移るかだ。

毎度毎度、知能が足らないのか?
98デフォルトの名無しさん (ワッチョイ b175-jLm+)
垢版 |
2024/01/06(土) 21:58:55.80ID:TtodDVSd0
"" in ""
99デフォルトの名無しさん (ワッチョイ 5f24-JApz)
垢版 |
2024/01/07(日) 02:32:16.08ID:AyQnYcYI0
>>92
知らんかった、、
forの場合、in後の反復オブジェクトをiter化してStopIterationが出ると止めてるらしいので
in演算子後の文字列をiter化すれば同じ結果になるだろうけど
2024/01/07(日) 06:43:26.45ID:OFj05X8E0
https://docs.python.org/ja/3.12/reference/expressions.html#membership-test-operations
__contains__の実装次第でどうにでもなるから深く考えない方がいい
文字列の場合はsubstringと決めただけ
2024/01/07(日) 11:02:41.98ID:D2Jhfkux0
文字列だと「なにもない」を部分であるとみなして、
集合は「なにもない」は部分ではないとする

わざわざそうするのは、こういう処理の時にシンプルに書けて合理的でしょ
という例が思い浮かばないんだよな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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