1 名前:デフォルトの名無しさん [2020/01/02(木) 15:56:54.08 ID:ZUrZA+uS.net] 当スレに★Python以外のプログラミング言語での回答類を書くべからず★ ☆「Ruby では」「Rubyでは」をNGワード登録推奨 このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 ★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので ↓等のてきとうなソースコード用うpろだに貼ってきてください。 スクショをImgur等にうp といった 手抜き(クソ行為)禁止。 ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ttps://jupyter.org/try (旧try.jupyter.org)ちょっとめんどうそう ◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と 実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。 ◇Python公式サイト◇ www.python.org/ ◇まとめwiki◇ ttp://python.rdy.jp/ 〇前スレ〇 くだすれPython(超初心者用) その45【Ruby禁止】 https://mevius.5ch.net/test/read.cgi/tech/1571188632/
910 名前:デフォルトの名無しさん [2020/02/27(木) 15:34:26.29 ID:G6pyHvdg.net] >>902 pythonの三項演算子は表記は違うけど書く順はCと一緒だし困らない 慣れだけの問題
911 名前:デフォルトの名無しさん mailto:sage [2020/02/27(木) 16:34:42.20 ID:r1k8T+E3.net] >>905 一緒じゃなくない? flag ? "true" : "false" 'True’ if flag else ‘False’
912 名前:デフォルトの名無しさん [2020/02/27(木) 16:37:07.47 ID:G6pyHvdg.net] 細かいことは気にすんな
913 名前:デフォルトの名無しさん [2020/02/27(Thu) 18:08:21 ID:RRBu+1LX.net] >>896 三項演算子うんぬん以前に、文字列と予約語(if)との間や二項演算子の前後に 空白を置かないという、初心者にありがちな可読性を低下させる誤りがある この田島悠介という現役エンジニアの技術レベルがその程度であり、 おそらくTechAcademyマガジンというサイトもそんなレベルの記事で 溢れているであろうことは、容易に予測できる もし自分がPythonで三項演算子を使うなら、以下のように書く https://www.ideone.com/gOE9K0 後置if節とでも言えばいいのか、Haskellのガード式をイメージしている >>900 関数型言語ではないが、スレタイの某言語だと以下のように書ける https://www.ideone.com/uy4Baa
914 名前:デフォルトの名無しさん [2020/02/27(Thu) 19:10:02 ID:x1hy167u.net] >>905
915 名前:デフォルトの名無しさん [2020/02/27(Thu) 20:53:30 ID:b5CXYagp.net] https://www.ideone.com/d1O8k6
916 名前:デフォルトの名無しさん [2020/02/27(Thu) 21:11:54 ID:oAIJ90KI.net] >>896 条件によって値を返すだけなら Excelのワークシート関数のif関数みたいなのが 個人的には1番わかりやすい
917 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:06:26 ID:F/P7X7F7.net] ループでぐるぐるまわしてて 4の倍数の時は3をたすってのはどうしたらいいですか それ以外のときはそれぞれ別々にやる計算あります あとpythonの質問するところってここしか知らないですが 他にもありますか?
918 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:39:54 ID:ZhdluG0Q.net] >>912 非コミュ障害、知能が低くないなら、ここよりTeratailにしたほうが良いが でも、お前はコミュ障害もち、知能低い感じで一般の奴らからは相手にされないだろう。 結局、基地外、ゆとり、低脳の掲示板である5chぐらいしかお前の相手をしてくれないよ
919 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:41:29 ID:W1ryAU1b.net] >>912 しゅくだいの わからないところは だすひがくるより だいぶさきに せんせいに きいてね!
920 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:43:31 ID:IKP0YcdJ.net] pandasで2つのキーを指定してcsvファイルを結合したいのですが、可能でしょうか? 列Aが一致する範囲内で列Bを軸に2つのファイルを結合 pd.merge(df1, df2, on=['列A', '列B'], how='outer') としたところ、シャッフルして変になりました
921 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:45:57 ID:F/P7X7F7.net] >>913 仕方がないですがあなたもお仲間ですね
922 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:50:12 ID:W1ryAU1b.net] >>915 なにがどう「変に」と感じたのかしらんが ↓あたりのhowについてのところ + joinについてのところでもよんでみればー ttps://note.nkmk.me/python-pandas-merge-join/
923 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:53:16 ID:F/P7X7F7.net] 4の倍数でっていうのは if n%4 == 0: ____b=a+3 else: ____b=a みたいなのじゃなくて if使わなくてもa+3に なにか足すと四の倍数の時にだけ3を足すような のがあるかどうか知りたかったのです 説明不足ですいませんでした
924 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 22:55:49 ID:0yCkEhTI.net] pythonの環境構築が難しすぎる 3系で動かそうとしたら、デフォで入ってる2系が動いてる vagrantでsyncフォルダにScrapyのプロジェクト作ろうとしたらエラー吐くし 諦めてdjangoで糞アプリ作ってる pythonはライブラリが豊富だから魅力的なんだけど、今の活かせてない
925 名前:デフォルトの名無しさん [2020/02/27(木) 23:09:00.44 ID:mQGc2SMz.net] >>912 その日本語をそのままコードに翻訳するだけ
926 名前:デフォルトの名無しさん mailto:sage [2020/02/27(木) 23:22:44.86 ID:9dlETTA2.net] >>908 >関数型言語ではないが、スレタイの某言語だと以下のように書ける そのケースは普通case文使うやろ https://www.ideone.com/7jQ3Tb >>910 ぱっと見わかりやすそうに見えるけど 自然な思考順序に反してるからすごく可読性が低いんよね
927 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 23:28:37 ID:j46qIfAH.net] >>918 やらんほうがいいけど a + 3 * (n % 4 == 0) みたいなのは書けるが
928 名前:デフォルトの名無しさん mailto:sage [2020/02/27(Thu) 23:48:16 ID:EmRw8gIY.net] >>902 なんでそれが通ったか逆に不思議だよな。 後置ifとも他の三項演算子とも似てるようで違うキモい文法。
929 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 00:00:23 ID:CBzuDuio.net] >>922 ありがとうございます a+3*[1,0,0,0][n%4]というのも考えましたが
930 名前: やらない方が良いですか? ifが来た方がやっぱり良いんでしょうか? [] [ここ壊れてます]
931 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 00:12:19 ID:DkMBLb2P.net] >>924 自分だけが見るんなら何やってもいいけど人が見る可能性あるなら正直読みにくいし 無駄なハックは自分がやるならいいけど他人がやってるの見るとイラッとする 人ってそういうもんだし ただそうやってコードで遊ぶのは勉強としてはとてもいい
932 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 01:04:06 ID:CBzuDuio.net] >>925 ありがとうございます よっぽどの事情がない限り 無理やりifを無くす事はやめときます
933 名前:デフォルトの名無しさん [2020/02/28(金) 01:33:44.99 ID:mVRkB3jj.net] >>923 内包表記とか関係あるのかな
934 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 02:17:43 ID:xXr38fg8.net] >>927 https://lwn.net/Articles/25304/ if <condition> then <expression1> else <expression2> この選択肢だとマイナー機能に新しいキーワードを追加しないといけない それに加えてパーサーがif文の開始だと誤解しないようにするため 括弧が必要になり醜くなる というのがGuidoがPEPが提示段階で書いてた理由 その後メーリングリストでいろいろ議論はされてるけど 本人がそれをまともに読んでる形跡はなく 自分が最初に出した案に決めたように見える https://lists.gt.net/python/python/144863/?page=1; https://lists.gt.net/python/dev/264358?#264358
935 名前:デフォルトの名無しさん [2020/02/28(金) 02:31:53.06 ID:JX0D/Sej.net] ちゃんとメーリスから議論を拾ってくる有能
936 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 13:49:30.68 ID:GfVfgYuK.net] >>919 Windows 10, WSL, Ubuntu 18.04 では、 python/python3 コマンドは別のものだから、間違う訳ないw which python3 /usr/bin/python3 file /usr/bin/python3 /usr/bin/python3: symbolic link to python3.6 which python /usr/bin/python file /usr/bin/python /usr/bin/python: symbolic link to python2.7
937 名前:デフォルトの名無しさん mailto:sage [2020/02/28(金) 23:30:10 ID:/I0WWb67.net] pyenv導入したいんですがいくつか疑問があります まず、既にエイリアスに python="/usr/local/bin/python3" python2="/usr/bin/python" という風に設定してるんですが、pyenv導入する場合はこれは外さないとまずいですかね? そして既に入れてるpipのライブラリはpyenvの方のPythonでも使えるんでしょうか。 最初の導入ばかりでこの辺りの説明してるサイトが全然見つかりませんでした もし良ければ回答お願いします。
938 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 11:11:22.64 ID:VOzt624K.net] とりあえずは外したほうがよい。 というか二重三重の設定をメンテするなんて大変だろ? pyenv自体はそこらへんのエイリアスをいい感じにやるだけだから pipも普通に使えるし変わらんよ。 ただ、いろいろ環境がわからなくなることはよくある。 個人的にanacondaにパス通す方がよっぽど事故が少ないんだが、 公式原理主義者はどうも納得しないぽい。
939 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 11:17:08.59 ID:i8bha/XW.net] もうPythonの環境周りは滅茶苦茶だね 初心者は環境構築だけで丸一日費やして嫌になってやめていく 普及したことが皮肉にも普及の妨げになっている
940 名前:デフォルトの名無しさん [2020/02/29(土) 11:58:39.68 ID:KnuPGJb+.net] 仮想環境が当たり前みたいな記事ばっか書いてるアホどものせいだろ 全員電ノコで4ツ切りにして海に捨てたい
941 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 12:07:24.22 ID:4aY82yvr.net] venvもつかえんザコとかおるの? 無視しても良いんじゃね
942 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 12:54:53.32 ID:PDnkp16t.net] 困ってる奴が何のos使ってるのか知らんが、windowsならpathを弄れば何とかなる 俺も勉強のために最新入れてインタラクティブモードでpython起動したら2.7(?)とかだった cドライブをpython.exeで検索したら20件ぐらい出てきて色んなアプリでpythonが使われていた 仕方がないので自分が意図してインストールしたpythonのpathを一番先頭に持っていったら 自分が意図してインストールしたpython.exeを起動できた
943 名前:デフォルトの名無しさん [2020/02/29(土) 13:00:09.94 ID:x6UuZEs8.net] C#+Visual Studioが至高
944 名前:デフォルトの名無しさん [2020/02/29(土) 13:10:46 ID:/XxbCwlB.net] >>932 ありがとうございます! 2系と3系を同時に使いたいんですがそれはもう毎回切り替えるしか手がないんですかね?
945 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 13:42:38.05 ID:i8bha/XW.net] >>935 **envというプロダクトが多すぎて検索しただけで萎える しかも廃れた古いものもヒットするので、全くの新規さんが独学でやるには二重の苦難だろう こんなんじゃPythonの未来は暗いと感じる
946 名前:デフォルトの名無しさん [2020/02/29(土) 13:54:03.49 ID:3sltTQiA.net] >>932 ほんそれ
947 名前:デフォルトの名無しさん [2020/02/29(土) 13:56:01 ID:3sltTQiA.net] >>938 切り替えるんじゃなくて どっちの設定もしない コンソールを開いてから どっちを使うか選択(コマンド実行)
948 名前:デフォルトの名無しさん [2020/02/29(土) 13:57:46 ID:3sltTQiA.net] ちょっと判りにくかったかもしれんが 要するに混ぜるなってこと 両方入ってるのは問題無い 環境を混ぜるのが問題
949 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 14:17:00 ID:xglx3xdS.net] >>938 Win系なら、両方入ってる場合は pythonとうったら2系 pyとうったら3系 がデフォやぞ .pyをダブルクリックで実行したい ってのはかなわぬ願い バッチかませろ
950 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 14:26:25.10 ID:6BfVplee.net] winもpyに.py関連付けてたらshebang書けば使い分け出来るで
951 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 14:36:00.26 ID:/XxbCwlB.net] >>942 ありがとうございます、とりあえず言われた通りコマンドで選択してみます。 後言い忘れてましたがOSはMacです…エイリアスで色々やってるのはpythonコマンド だと2系が自動で選択されるからです。環境描き忘れててすみません。
952 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 14:45:21.95 ID:xglx3xdS.net] >>945 なんというぐうくそ
953 名前:デフォルトの名無しさん mailto:sage [2020/02/29(土) 23:48:35 ID:6IdZMwnf.net] >>936 パスの順番を変えたら、他のアプリが動かなくなるけど、それは良いのか? >>945 Mac は最初から、Python, Ruby が入っているから、その環境に影響を与えるとまずい。 それらを使っているアプリがあるから だから、仮想を使う Docker も良いかも
954 名前:デフォルトの名無しさん [2020/03/03(火) 09:40:24.54 ID:Zy/UEfGJ.net] seleniumにてfirefoxの既存のプロファイルを使用する方法はありませんでしょうか? どうにも既存のプロファイルを読み込まなく難儀しています...
955 名前:デフォルトの名無しさん [2020/03/03(火) 09:43:07.58 ID:Zy/UEfGJ.net] コードはたったコレだけなんですが全くといいほど読み込みません from selenium import webdriver fp = webdriver.FirefoxProfile('/home/user1/.mozilla/firefox/zaxxxxxt.default') browser = webdriver.Firefox(fp)
956 名前:デフォルトの名無しさん mailto:sage [2020/03/03(火) 11:13:11.66 ID:GznFhYco.net] >>948-949 https://techiedelight.com/compiler/?ScFS ↑ここにかんすうはってきたので fp = get_profile_path("default") こうやってさがさせてみそ それでも、なんでかうまく読まないことあるけど。。。
957 名前: あと、基本的なところだが、 geckodriverのバージョンが古いと失敗すること多い。 [] [ここ壊れてます]
958 名前:デフォルトの名無しさん mailto:sage [2020/03/04(水) 02:21:30.44 ID:n/osJUKI.net] >>950 ありがとうございます fp = get_profile_path("default") browser = webdriver.Firefox(fp,executable_path=’場所') 作って頂いた関数を使用したのですが、やはり新規プロファイルを読み込まれ既存のプロファイルが読み込まれません Chromeでは既存のプロファイルが読み込まれるのですが、如何せんChromeではmeta refreshをdisable出来ないため firefoxを利用したいのです プロファイルの場所は初期値 geckodriverは0.26.0なので問題ないと思うのですが…
959 名前:デフォルトの名無しさん mailto:sage [2020/03/04(水) 12:59:09 ID:Q2O9cj6l.net] >>951 プロファイルの場所探すところを改造せんといかんのかもしらん 泥臭いやりかただと、 ターゲットフォルダの中身全部をリストにして .defaultで終わってるものをとる。みつかったらbreak みたいなー
960 名前:デフォルトの名無しさん [2020/03/04(水) 19:58:03.24 ID:fq3DQX8J.net] >>933 アナコンダインストール一発ではだめなの?
961 名前:デフォルトの名無しさん [2020/03/04(水) 20:13:57.82 ID:O0VNA921.net] 駄目に決まってんだろアホ お前だろ「Anacondaをインストールする2020最新」とかいうアマゾンの中華製品みたいな信用度の記事Qiitaに書きまくってるゴミは
962 名前:デフォルトの名無しさん mailto:sage [2020/03/04(水) 23:19:20.62 ID:nNNW6i++.net] Anaconda は、Python が入っていない、Windows 限定 Mac, Linux など、最初から、Pythonが入っているものについては、 初心者には無理なので、プロに聞いてくださいと、 「みんなのPython 第4版、2017」にも、書いてある つまり、最初から入っている、Pythonと両立させるのは、仮想が必要だから、難しい
963 名前:デフォルトの名無しさん mailto:sage [2020/03/05(Thu) 04:04:41 ID:eClduRvk.net] つまりPythonを使うならWindowsという時代が来たということだな 最初からPythonを入れてシステム的に依存する仕組みにしたLinux系は下手打ったよなあ
964 名前:デフォルトの名無しさん [2020/03/05(Thu) 07:16:32 ID:s/vnmaxn.net] システムとは別にPythonいれてそっち使えばいいやん 仮想可は実行環境だからまた別の話
965 名前:954 mailto:sage [2020/03/05(Thu) 08:01:54 ID:PBcHTAfh.net] 仮想環境は、Ruby のrbenv・RVM とか、Python のvenv とか、 これが素人には難しすぎるから、入門書には書いていない! Mac・Linux では、仮想環境になる
966 名前:デフォルトの名無しさん [2020/03/05(Thu) 12:41:11 ID:s/vnmaxn.net] >>957 >仮想可 じゃなくて、仮想環境でした
967 名前:デフォルトの名無しさん [2020/03/05(木) 15:08:38.13 ID:zs+Uexwr.net] 超初心者です 100回動作を繰り返すとします 繰り返しn回目でn回〇〇するといった場合どう記述すればいいんですかね? たとえば30回目の動作で30回ボタンを押す、55回目で55回ボタンを押すというような感じです
968 名前:デフォルトの名無しさん mailto:sage [2020/03/05(木) 15:15:03.78 ID:CNNRfBpe.net] それ、pythonの質問じゃなくてどうプログラムしたら良いのかの プログラミング自体の質問だから 自分で考えなさい
969 名前:デフォルトの名無しさん [2020/03/05(木) 15:20:01.54 ID:ZS+YL4ip.net] >>960 for n in range(100): for i in range(n): doSomething()
970 名前:デフォルトの名無しさん [2020/03/05(木) 15:54:57.40 ID:zs+Uexwr.net] >>961 すいません気をつけます >>962 理想通りできました ありがとうございました!
971 名前:デフォルトの名無しさん mailto:sage [2020/03/05(Thu) 16:30:55 ID:wTyki8t2.net] pythonはメジャーになって逆に環境構築に関してはひどい状況になったかもな。。 今正確にやるならdockerで閉じ込めろって話になるが、それ初心者には言えんわ。
972 名前:デフォルトの名無しさん mailto:sage [2020/03/05(木) 19:06:49.16 ID:yi4ntJTq.net] dockerは厳しいわ 流行っているから本買って来て読んでみたけど そもそも何をするソフトなのか、何の役に立つのかすら理解できなかった
973 名前:デフォルトの名無しさん mailto:sage [2020/03/05(木) 19:21:28.75 ID:wTyki8t2.net] やっぱり最低限は環境変数とPATHは理解してもらってanaconda入れてPATH通すってやり方かなと思う。 最悪問題起きても環境変数とPATHがわかってればデバッグできるでしょ。
974 名前:デフォルトの名無しさん mailto:sage [2020/03/05(Thu) 19:43:37 ID:D1lGE/tK.net] google も動かすまでが結構大変なんだよな 初心者には難しいかな
975 名前:デフォルトの名無しさん mailto:sage [2020/03/05(Thu) 20:16:30 ID:dUqOCP9n.net] >>967 おまえのぐっぐるとはなんのことやらエスパーする余地がある さすが、自然言語が不自由なスッドレだなw
976 名前:デフォルトの名無しさん mailto:sage [2020/03/05(Thu) 20:26:45 ID:Fk1ZMAni.net] (200, 200) のnumpy配列を(1, 80, 80)にしたいです お願いします
977 名前:デフォルトの名無しさん mailto:sage [2020/03/05(Thu) 20:27:11 ID:Fk1ZMAni.net] 間違えました (200, 200) のnumpy配列を(1, 200, 200)にしたいです お願いします
978 名前:デフォルトの名無しさん [2020/03/05(Thu) 20:57:29 ID:s/vnmaxn.net] 丸投げはやっとるん?
979 名前:デフォルトの名無しさん [2020/03/05(Thu) 21:01:02 ID:fCV+9Bpk.net] np.expand_dims
980 名前:デフォルトの名無しさん [2020/03/06(金) 03:11:42.52 ID:9EQdyE3d.net] python3で質問です for i in list1: if ("A" or "B") in str(i): list2.append(i) elif "C"==str(i) or "D"==str(i) or "E"==str(i):#←ここ list3.append(i) else: list4.append(i) というコードがあるのですが、#部分が汚いというか煩雑で困っています。 いずれは#部分の比較文字列が増える可能性があるので、例えば ("C" or "D" or "E")==str(i) みたいな感じでスマートに書きたいです。(ちなみにこれだと最初のCしか比較されませんでした。。。) #部分をどうしたらいいでしょうか? また、最終的には#部分で比較する別ファイルからリスト型に取り出してぱーっと比較したいです その場合のアルゴリズムも(ファイルの読み込み操作とかは不要です)できたらほしいです
981 名前:972 [2020/03/06(金) 03:14:05.66 ID:9EQdyE3d.net] codepad.org/QoncQu10 すみません、、、インデント崩れました これです
982 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 03:40:12.72 ID:HMS8G3Kn.net] >>973 in演算子でいいじゃん if 比較したい値 in 値の入ったリスト
983 名前:デフォルトの名無しさん [2020/03/06(金) 03:41:39.25 ID:zMfd3B+p.net] そんなもんお前… str(i) in ('C', 'D', 'E') やろ ところで、最初の ('A' or 'B') in str(i) は想定通りに動作してないと思われる 'A' in str(i) 相当だから もう少し演算子について正確に学んだ方がいい
984 名前:デフォルトの名無しさん [2020/03/06(金) 06:32:33.66 ID:MUtvLxi6.net] 文字列化すると"A" になるデータってどんなのかな
985 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 06:56:59.42 ID:qYlx8Qkc.net] >>977 ABO式血液型とカー?(ちょうてきとう)
986 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 07:06:27.86 ID:Z17kfdKR.net] >>973 別にifとelifをABCの数だけ並べてもいいでしょ? スマートな書き方は慣れてからでもいいでしょ >ぱーっと比較したい 後半は急に雑な説明になって 何がしたいかよく分からん?
987 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 08:46:55.47 ID:+VKnEuTi.net] >>979 >ぱーっと比較したい 俺、思うに、それが str(i) in ['C', 'D', 'E'....] のことじゃないのか
988 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 09:24:34.72 ID:6R/8Uuzj.net] >>973 リストの内容によってはこういう方法でもいける。 import re list=["A","B","C","D","E","F"] sList=",".join(list) list2=list2+re.findall("[AB]",sList)
989 名前:972 [2020/03/06(金) 15:01:17.68 ID:yez0RtUo.net] >>980 これで#部分でやりたかったことが出来ました。 ありがとうございます AとかBは簡略化のためで血液型とかじゃないです 比較する値(list1の各要素)には"ACC"みたいなものが来るようになっていて Cが含まれていても”CX"みたいになっていたらelseに分岐させる感じの処理です 最初の部分の if ('A' or 'B') in str(i): も左をリストにして簡潔にしちゃいたいのですが さっきのやり方(例えばif str(i) in ['A','B']:)だと"AA"とかがstr(i)に来たときに漏れてしまいます str(i)にAかBが含まれているとき(例えばAB,AF,AA,BE)に分岐させる処理はどう書いたらいいでしょうか? 最初の
990 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 15:10:11 ID:6R/8Uuzj.net] なかなかの後出しだな。 単にA,Bが含まれるという条件なのか、A,Bから始まるのか、 C〜の文字列は絶対A,Bは含まないのかなど、細かい条件で全然違うぞ
991 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 16:29:59 ID:Z17kfdKR.net] >>982 一言でいうと処理対象の複雑さによって処理が異なる もし文法構造を有しているならパース処理が必要になるが 字の配列だけの問題なら分岐だけで処理できる フローチャート的なif文の分岐が基本中の基本だから 短く書くやり方は基本が分かってからにしよう 具体的には先頭から一字ずつ判断して行けばいい 先頭の文字がAの場合、Bの場合、 それぞれについて次の文字がAの場合、Bの場合…… ってif文をネストしていけば書けるはず
992 名前:デフォルトの名無しさん mailto:age [2020/03/06(金) 18:02:59.48 ID:MP/8tjp8.net] pandasで以下のようなcsvファイルを読み込み、 burgers,meatballs,eggs chutney turkey,avocado 以下のような2次元配列に変換したいです。 [['burgers', 'meatballs', 'eggs'], ['chutney'], ['turkey', 'avocado']] pandas.read_csv(..., heade=None).to_numpy().tolist()だとnanが含まれてしまいます。 for文でnan削除するよりスマートな方法はないでしょうか?
993 名前:972 [2020/03/06(金) 20:16:06 ID:9EOp8vfg.net] >>983 A,Bが含まれるという条件です 例えばAjsやskBfです Cの文字列は絶対に含みません 後出しになっちゃって本当にすみません。。。 set()とか使って出来ないかなと思ってさっきも色々試したんですけどだめしでした。。。
994 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 20:45:36.78 ID:n2xpzai7.net] >>985 pandasじゃなくcsv.reader使ったのでよくない? list(csv.reader(file))で意図した配列にできるよ
995 名前:984 mailto:sage [2020/03/06(金) 20:56:23 ID:MhiZvrbz.net] それでいいです。ありがとうございました。
996 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 20:57:39 ID:n2xpzai7.net] >>982 any(x in str(i) for x in ['A', ‘B’]) pythonの場合このケースは正規表現のほうがわかりやすいかもね
997 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 20:58:36 ID:n2xpzai7.net] あと、str()必要??
998 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 21:49:10.87 ID:gkPkCuAw.net] perlみたく安直には出来ないようになってるからね if (/C|D|E/) ショウガナイね そもそも最近のワカモンは正規表現の存在自体知らないんだよ 本当に、聞いたことすらないんだよ
999 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 21:52:24.21 ID:gp44GQTA.net] 正規表現はもう古すぎだよなあ あんな暗号みたいなの覚えられんし方言もあるし しかもデバッグが非常に難しい
1000 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 21:56:09.57 ID:Fgd+2Xim.net] そんなあなたにRaku
1001 名前:デフォルトの名無しさん mailto:sage [2020/03/06(金) 22:12:28.48 ID:7d5kGJiP.net] 正規表現使わずにプログラムするとかそっちのが苦痛だわ
1002 名前:デフォルトの名無しさん [2020/03/06(金) 23:07:37.81 ID:MUtvLxi6.net] >>973 プログラムで処理できる 完全なサンプルデータを示してほしい
1003 名前:972 [2020/03/06(金) 23:29:13 ID:9EOp8vfg.net] >>989 すごいです。。。できました。。。 正規表現は一応貪欲なんとかとかかるーく使ったことある程度です 今回はうまくいけたのでヨシ!とします。。 any使ったことなかったので精進します
1004 名前:デフォルトの名無しさん [2020/03/07(土) 00:41:33.17 ID:k5ibAr7h.net] まず新スレ立てろデブ https://mevius.5ch.net/test/read.cgi/tech/1583509252/
1005 名前:デフォルトの名無しさん mailto:sage [2020/03/07(土) 00:50:58.92 ID:CmL9X7tL.net] >>992 俺は自分が書いた正規表現ですら、後で見ると何にマッチするのかわからんってのが あるからコメントが必須だからな。 すごい奴のすごい正規表現はもう何にマッチするのか文章の説明がないとさっぱりわからん
1006 名前:デフォルトの名無しさん mailto:sage [2020/03/07(土) 01:00:25.56 ID:AvLdWjOA.net] あれは魔術師の呪文と同じ
1007 名前:デフォルトの名無しさん [2020/03/07(土) 01:04:17.34 ID:k4ffI6Av.net] うまな
1008 名前:デフォルトの名無しさん [2020/03/07(土) 01:04:29.33 ID:k4ffI6Av.net] うめ
1009 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 64日 9時間 7分 36秒
1010 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています