Pythonオフィシャルサイト
http://www.python.org/
■前スレ
Pythonのお勉強 Part55
https://mevius.5ch.net/test/read.cgi/tech/1513919747/
探検
Pythonのお勉強 Part56
■ このスレッドは過去ログ倉庫に格納されています
2018/02/24(土) 09:07:21.39ID:5jzCjhzv
785デフォルトの名無しさん
2018/06/02(土) 23:02:42.59ID:1NoTrVsp 自己解決しました
forの中にif で !=とやれば出来ました
forの中にif で !=とやれば出来ました
786デフォルトの名無しさん
2018/06/03(日) 17:23:39.37ID:StPqrojA ['celsius'] → .get('celsius')
なら、例外を返さないよ。
なら、例外を返さないよ。
787デフォルトの名無しさん
2018/06/03(日) 19:25:15.92ID:DFly98Lo forecast.get(‘temperature’,{}).get(‘max’,{}).get(‘celsius’)
788デフォルトの名無しさん
2018/06/03(日) 22:37:38.40ID:1q5Ocsij789デフォルトの名無しさん
2018/06/03(日) 23:18:38.66ID:sxlJcq13 (forecast['temperature']['max'] or {}).get('celsius')
790デフォルトの名無しさん
2018/06/04(月) 01:22:02.49ID:kbH5Vpqw try: で例外補足して捨てろ
791デフォルトの名無しさん
2018/06/04(月) 01:38:40.31ID:2VRW2157 そんな大げさなぁ
正解出てるんだからそれでいいじゃん
正解出てるんだからそれでいいじゃん
792デフォルトの名無しさん
2018/06/04(月) 11:17:53.61ID:u6vqWCTI793デフォルトの名無しさん
2018/06/04(月) 12:45:18.03ID:FOPJqJUz この辺Nullableがない言語はつらいねぇ。
794デフォルトの名無しさん
2018/06/04(月) 16:06:35.84ID:aK73DBqi795デフォルトの名無しさん
2018/06/05(火) 19:44:01.68ID:YRBptDzO >>789
>>790
>>792
どうもありがとうございます。
getとtryとdef〜について勉強してみます。
今は以下のスクショのように日付や時刻の勉強しているんですが、fmt1のフォーマットだと、
It's 2018-06-05 19:07:34
-----
と、表示されるんですが、fmt2だと何も表示されません。
日本語の文字を表示させるには特別な手順が必要なんでしょうか?
https://i.imgur.com/dOy4ycM.png
>>790
>>792
どうもありがとうございます。
getとtryとdef〜について勉強してみます。
今は以下のスクショのように日付や時刻の勉強しているんですが、fmt1のフォーマットだと、
It's 2018-06-05 19:07:34
-----
と、表示されるんですが、fmt2だと何も表示されません。
日本語の文字を表示させるには特別な手順が必要なんでしょうか?
https://i.imgur.com/dOy4ycM.png
796デフォルトの名無しさん
2018/06/05(火) 22:43:13.74ID:2hesoCMd range関数で特定回情報引っ張りたいんですけど
for i in range(j(10)):
じゃダメなの?
for i in range(j(10)):
じゃダメなの?
797デフォルトの名無しさん
2018/06/05(火) 23:07:43.62ID:4Q7TkxG/ 何言ってんのお前
798デフォルトの名無しさん
2018/06/05(火) 23:10:43.97ID:BtMMCZLy799デフォルトの名無しさん
2018/06/06(水) 08:18:12.31ID:KWo7wxdh japanのjですけど?わかんないですか?
800デフォルトの名無しさん
2018/06/06(水) 08:33:32.88ID:1A1zAmiY ちなみに特定回っていうのはイニング、つまり次の打者が誰かってことなんで、後はよろしく
801デフォルトの名無しさん
2018/06/06(水) 08:53:23.14ID:2SAozy+o おっけーしばらく待ってて
結果は郵送する
結果は郵送する
802デフォルトの名無しさん
2018/06/06(水) 19:05:26.60ID:NnT9Azwi プログラミング言語の勉強の前に人の言語の勉強が必要
803デフォルトの名無しさん
2018/06/06(水) 22:05:03.82ID:bzwOpeNt 誰が一体正しいことを言ってるんだ〜
教えてくれ〜
教えてくれ〜
804デフォルトの名無しさん
2018/06/07(木) 15:42:50.86ID:xzImELPT obj = [1,2,3,4,5,6,7]
dels = [2,4,6]
から
obj = [1,3,5,7]
という感じにしたい
リストも消したいものリストも取りうる値はすべて把握できる。各リスト内で要素の重複なし
いつもforループでremoveしてるんですが、まとめてやる方法はありませんか
dels = [2,4,6]
から
obj = [1,3,5,7]
という感じにしたい
リストも消したいものリストも取りうる値はすべて把握できる。各リスト内で要素の重複なし
いつもforループでremoveしてるんですが、まとめてやる方法はありませんか
805デフォルトの名無しさん
2018/06/07(木) 15:53:35.50ID:GDSZPTst set(dels).symmetric_difference(obj)
806デフォルトの名無しさん
2018/06/07(木) 23:35:55.51ID:fBRjCnD9 >>804
list(set(obj)-set(dels))
list(set(obj)-set(dels))
807デフォルトの名無しさん
2018/06/08(金) 08:58:03.68ID:s80Aj9T2808デフォルトの名無しさん
2018/06/08(金) 18:08:38.06ID:SF+NOFIK >>805,806
set経由すると順番変わっちゃうよね。
それに805はdelsにあってobjに出てこない要素があったらまずいと思う
forは使うけど内包表記でこう書くしかないんじゃないかな
[x for x in obj if x not in dels]
set経由すると順番変わっちゃうよね。
それに805はdelsにあってobjに出てこない要素があったらまずいと思う
forは使うけど内包表記でこう書くしかないんじゃないかな
[x for x in obj if x not in dels]
809デフォルトの名無しさん
2018/06/08(金) 22:09:15.92ID:VohWRUJl あーなるほど
これはいいですね
これはいいですね
810デフォルトの名無しさん
2018/06/09(土) 00:10:36.97ID:Ns8l28oa >808
obj dels の要素数をN Mとして、計算量が、O(NM)になるよ。
N M が小さいうちはいいけど、大きくなると相当に遅いのでは。
obj dels がソート済みなら、尺取り法で、O(N+M)にできるよ。
毎回ソートする場合でも、O(N log N + M log M)に収まるよ。
N M が小さい(64以下とか)なら、要素の有無をビット列のフラグで表して、
obj -= obj & dels
とすれば、速くなるよ。
obj dels の要素数をN Mとして、計算量が、O(NM)になるよ。
N M が小さいうちはいいけど、大きくなると相当に遅いのでは。
obj dels がソート済みなら、尺取り法で、O(N+M)にできるよ。
毎回ソートする場合でも、O(N log N + M log M)に収まるよ。
N M が小さい(64以下とか)なら、要素の有無をビット列のフラグで表して、
obj -= obj & dels
とすれば、速くなるよ。
811デフォルトの名無しさん
2018/06/09(土) 00:35:17.29ID:oJ9F8PWs >>810
算数で挫折した俺には何言ってんだか分かんない
算数で挫折した俺には何言ってんだか分かんない
812デフォルトの名無しさん
2018/06/09(土) 00:45:21.09ID:csk1Wy/Y813デフォルトの名無しさん
2018/06/09(土) 06:33:47.80ID:8NVi+1MP >>812
自分もこのやり方がいいと思った
自分もこのやり方がいいと思った
814デフォルトの名無しさん
2018/06/09(土) 09:35:49.42ID:qDhDJ/HV >812
そうだね。
こっちの方がいいね!
そうだね。
こっちの方がいいね!
815デフォルトの名無しさん
2018/06/09(土) 09:40:20.05ID:w8AtL8ww816デフォルトの名無しさん
2018/06/09(土) 09:44:21.08ID:OQQgQKSz スクリプトは基本的にゲロ遅いから、アルゴリズムの計算量的には非効率でも
現実には実行されるPythonのインストラクション数が少ない方が速いケースが多いよ
現実には実行されるPythonのインストラクション数が少ない方が速いケースが多いよ
817デフォルトの名無しさん
2018/06/09(土) 09:51:35.27ID:eGSjtA/z 尺取り法でどうやるんだろ
俺もforループか内包くらいしかわからん…
配列の順番変わっていいならsetするけど
俺もforループか内包くらいしかわからん…
配列の順番変わっていいならsetするけど
818デフォルトの名無しさん
2018/06/09(土) 10:33:06.91ID:WtghSZSO >817
尺取り法での実装はこんな感じだと思うよ。
obj を idx1 で走査して、
dels を idx2 で走査する。
更新結果はobjnew(最初は空)に保持する。
obj[idx1] < dels[idx2] なら、objnew にobj[idx1]を追加し、idx1を一つ増やす
obj[idx1] == dels[idx2] なら、idx1とidx2をそれぞれ一つ増やす
obj[idx1] > dels[idx2] なら、idx2を一つ増やす
これが、obj, dels のどちらかの要素が尽きたら終わり
上の説明とはちょっと違うけど、コードにすると以下のような感じ。
質問者の希望としては、ループを回さず手短に書きたいってことだろうから、期待には沿えてないかな。
CENTINEL = float("inf")
dels.append(CENTINEL)
objnew = []
i = 0
for x in obj:
__while x > dels[i]: i += 1
__if x < dels[i]:
____objnew.append(x)
尺取り法での実装はこんな感じだと思うよ。
obj を idx1 で走査して、
dels を idx2 で走査する。
更新結果はobjnew(最初は空)に保持する。
obj[idx1] < dels[idx2] なら、objnew にobj[idx1]を追加し、idx1を一つ増やす
obj[idx1] == dels[idx2] なら、idx1とidx2をそれぞれ一つ増やす
obj[idx1] > dels[idx2] なら、idx2を一つ増やす
これが、obj, dels のどちらかの要素が尽きたら終わり
上の説明とはちょっと違うけど、コードにすると以下のような感じ。
質問者の希望としては、ループを回さず手短に書きたいってことだろうから、期待には沿えてないかな。
CENTINEL = float("inf")
dels.append(CENTINEL)
objnew = []
i = 0
for x in obj:
__while x > dels[i]: i += 1
__if x < dels[i]:
____objnew.append(x)
819デフォルトの名無しさん
2018/06/09(土) 10:35:52.27ID:hMCeqk2j 範囲がないのに尺取り法と呼ぶのか?
マッチングとか突合せとか呼ばれる、COBOLなんかでよく使われる伝統的な方法だよねそれ
O(N+M)ある程度の要素数がないとPythonインタプリタのゲロ遅さがネックになるから実際にはあまり速くないと思う
マッチングとか突合せとか呼ばれる、COBOLなんかでよく使われる伝統的な方法だよねそれ
O(N+M)ある程度の要素数がないとPythonインタプリタのゲロ遅さがネックになるから実際にはあまり速くないと思う
820デフォルトの名無しさん
2018/06/09(土) 11:20:53.41ID:r/WMfZjs >819
ご指摘ありがとう。
ポインタ2つ使ってリストをO(N+M)で走査する手法を、尺取り法というのだと思ってた。
尺取り法でググったところ、1つのリストの始点と終点にポインタを置いて、範囲に関する数え上げや最小区間などを求める使い方が多いんだね。
蟻本だと、区間の先頭と末尾を交互に進めながら条件を満たす最小の区間を求める手法、と説明されてた。
Pythonだと、とてつもなく遅くなるのは同意。
ご指摘ありがとう。
ポインタ2つ使ってリストをO(N+M)で走査する手法を、尺取り法というのだと思ってた。
尺取り法でググったところ、1つのリストの始点と終点にポインタを置いて、範囲に関する数え上げや最小区間などを求める使い方が多いんだね。
蟻本だと、区間の先頭と末尾を交互に進めながら条件を満たす最小の区間を求める手法、と説明されてた。
Pythonだと、とてつもなく遅くなるのは同意。
821デフォルトの名無しさん
2018/06/09(土) 14:42:42.73ID:XNcZfz05 sqlalchemyってDISTINCTできませんか?
822デフォルトの名無しさん
2018/06/09(土) 15:32:48.69ID:a58WBe6r823デフォルトの名無しさん
2018/06/09(土) 16:35:43.13ID:XNcZfz05824デフォルトの名無しさん
2018/06/10(日) 08:03:22.50ID:eKIytbed 外部コマンドを実行する場合、commands.getoutputとsubprocess.callとどっちがよいの?
825デフォルトの名無しさん
2018/06/10(日) 08:06:40.10ID:eKIytbed 自己レス
osやcommandsは古いから非推奨なのか
環境変数を取得するのにos.getenvを使ってるんだけど、他の方法に置き換えた方がよいの?
osやcommandsは古いから非推奨なのか
環境変数を取得するのにos.getenvを使ってるんだけど、他の方法に置き換えた方がよいの?
826デフォルトの名無しさん
2018/06/10(日) 22:21:13.16ID:dbzNV0oX そうね
827デフォルトの名無しさん
2018/06/11(月) 13:01:13.27ID:K1UP5N/E 三項演算子って何だ、まったく知らんぞい!
なんかメリットとか有るのかな
なんかメリットとか有るのかな
828デフォルトの名無しさん
2018/06/11(月) 13:09:36.63ID:tK3aH3wF ●一行で書ける
●文ではなく式として扱える
●文ではなく式として扱える
829デフォルトの名無しさん
2018/06/11(月) 13:24:27.07ID:1B6gzu8+ pythonの三項演算式ってリスト内包に通ずるものがあるよな。
ある種の一貫性があるような無いような。
ある種の一貫性があるような無いような。
830デフォルトの名無しさん
2018/06/11(月) 13:26:51.12ID:urgYl6nk 三項演算子のネストをしたときに
いつも優先順位が不安になる
いつも優先順位が不安になる
831デフォルトの名無しさん
2018/06/11(月) 13:47:22.28ID:CFwM+3k+ 1 if A else 2 if B else 3
最初に評価されるのがAかBかってことだな。
Aっぽい気がするし試したら実際そうだったけど不安にはなるな。
最初に評価されるのがAかBかってことだな。
Aっぽい気がするし試したら実際そうだったけど不安にはなるな。
832デフォルトの名無しさん
2018/06/11(月) 14:15:29.47ID:/EsUeVn+ switch文はいらんけど、switch式は欲しいな。
833デフォルトの名無しさん
2018/06/11(月) 14:47:50.68ID:K1UP5N/E なるほど、さすが皆様お詳しい
834デフォルトの名無しさん
2018/06/11(月) 14:59:00.26ID:539MWtkj 1 if A else 2 if B else 3 if C else 4
835デフォルトの名無しさん
2018/06/11(月) 16:43:43.91ID:K1UP5N/E Python3を始めたんだけど、これ面白いね。
他の人の書いたコードが読みやすいから参考にしやすい、勉強になるーー
他の言語は諦める。
他の人の書いたコードが読みやすいから参考にしやすい、勉強になるーー
他の言語は諦める。
836デフォルトの名無しさん
2018/06/11(月) 18:58:31.63ID:sTqEU8aL 俺はpythonのためにラテン語諦めることにした。
837デフォルトの名無しさん
2018/06/11(月) 19:41:26.87ID:EF9thOd6 改行しないと読みづらいよ
1 if A else
2 if B else
3
1 if A else
2 if B else
3
838デフォルトの名無しさん
2018/06/12(火) 11:34:08.14ID:QcOm+KSj 釣られないぞ!
839デフォルトの名無しさん
2018/06/12(火) 13:38:27.08ID:FVANZLpl おじいちゃん…
840デフォルトの名無しさん
2018/06/12(火) 17:09:43.65ID:bLF3+6cr >>835
ようこそ
ようこそ
841デフォルトの名無しさん
2018/06/12(火) 17:18:14.64ID:E+wkASA2 iOSのpythonista3でアプリ作り始めました。
画面の中のボタンを押すと、別のpyuiファイルをload_view()でcallして、
別の画面へ切り替わる、ということはできたんですが、切り替わる、というよりも
別ウィンドウが何個も立ち上がる、という状態になってるだけみたいです。
画面が切り替わる遷移ってどのメソッド使うのでしょうか?
画面の中のボタンを押すと、別のpyuiファイルをload_view()でcallして、
別の画面へ切り替わる、ということはできたんですが、切り替わる、というよりも
別ウィンドウが何個も立ち上がる、という状態になってるだけみたいです。
画面が切り替わる遷移ってどのメソッド使うのでしょうか?
842デフォルトの名無しさん
2018/06/12(火) 17:21:25.05ID:4WaLx3zk スクレイピングを非同期でしたいのですが
for site in sites:
if site.run_next <= now:
run(site)
これの if site.run_next <= now を↓のようにするにはどうしたらいいですか?
asyncio.wait([ task_run(site) for site in sites ])
恥ずかしながらこれでは上手くいってないようです
t = []
for site in sites:
if site.run_next <= now:
t.append(run(site))
tasks = asyncio.wait(t)
for site in sites:
if site.run_next <= now:
run(site)
これの if site.run_next <= now を↓のようにするにはどうしたらいいですか?
asyncio.wait([ task_run(site) for site in sites ])
恥ずかしながらこれでは上手くいってないようです
t = []
for site in sites:
if site.run_next <= now:
t.append(run(site))
tasks = asyncio.wait(t)
843841
2018/06/12(火) 17:26:17.13ID:E+wkASA2 こんな感じです。
それぞれのメソッドはAとBのpyuiに配置されたボタンに紐付いています。
import ui
def return(sender):
ui.load_view('A').present('sheet')
def goto(sender):
ui.load_view('B').present('sheet')
v = ui.load_view()
v.present('sheet')
それぞれのメソッドはAとBのpyuiに配置されたボタンに紐付いています。
import ui
def return(sender):
ui.load_view('A').present('sheet')
def goto(sender):
ui.load_view('B').present('sheet')
v = ui.load_view()
v.present('sheet')
844842
2018/06/12(火) 18:18:15.86ID:4WaLx3zk すいません
for site in sites if site.run_next <= now
これでいけるのですね
あと先程のは配列が空になってるのが上手くいかない原因だったみたいです
for site in sites if site.run_next <= now
これでいけるのですね
あと先程のは配列が空になってるのが上手くいかない原因だったみたいです
845デフォルトの名無しさん
2018/06/12(火) 23:21:59.66ID:gk0+6nOB プログラム実行中にエラー(例外)を生じた時の処理は、
try-except と if文(条件分岐) はどのように使い分けてる?
try-except と if文(条件分岐) はどのように使い分けてる?
846デフォルトの名無しさん
2018/06/13(水) 00:00:38.90ID:1SDxKdGv 分けられるのか?
ifで例外キャッチできるの?
ifで例外キャッチできるの?
847デフォルトの名無しさん
2018/06/13(水) 00:09:27.19ID:rT/gcgHi 例外処理はめんどうだからやらないなあ
どこでどんなエラーが発生するか事前にわかったらエスパーだろ
どこでどんなエラーが発生するか事前にわかったらエスパーだろ
848デフォルトの名無しさん
2018/06/13(水) 00:33:47.66ID:+CjawHix ifで変数があることを確認して、その変数を用いた処理をするところを、
いきなりtryで処理して、エラー時のみ例外処理で済ますという方法もあるから、
どちらで処理したほうがいいかということだな。
タイプで絞り込めば、例外処理は意外と簡単だし、
更に細かい絞り込みはすでにキャッチした結果の条件分岐でもできる。
でも、なんか手抜きというか作法としてどうかという感じもしないではない。
いきなりtryで処理して、エラー時のみ例外処理で済ますという方法もあるから、
どちらで処理したほうがいいかということだな。
タイプで絞り込めば、例外処理は意外と簡単だし、
更に細かい絞り込みはすでにキャッチした結果の条件分岐でもできる。
でも、なんか手抜きというか作法としてどうかという感じもしないではない。
849デフォルトの名無しさん
2018/06/13(水) 01:13:22.99ID:nKOKvJ/8 例外が起こるまで想定内なら基本的に拾うべきでは
それで走らせてちゃんと例外拾って正常終了すれば、そこまでは思い通りに動けてるってことだし
予期される例外が起こるか起きないかわからなくて、かつそれが全体的に支障を来さないと断定できるなら
条件文で避けるのもあるかもだがなんかきもいな
それで走らせてちゃんと例外拾って正常終了すれば、そこまでは思い通りに動けてるってことだし
予期される例外が起こるか起きないかわからなくて、かつそれが全体的に支障を来さないと断定できるなら
条件文で避けるのもあるかもだがなんかきもいな
850デフォルトの名無しさん
2018/06/13(水) 02:18:42.49ID:JYmIyEqB コードの半分が例外処理に費やされたことがあったw
851デフォルトの名無しさん
2018/06/13(水) 02:23:17.41ID:WszqQhwI そういう意味なら、最終的にプログラムが速く動くように使い分ける
(最後に本音がある)
以下、例外をスローする関数を関数t
事前条件を検証する関数を関数cとする
関数t: 呼び出しが低コスト、かつ呼び出し回数が少ない
→try~catch
関数c: 関数tと同等の呼び出しコスト
→try~catch
関数t: 呼び出しが高コスト、または呼び出し回数が多い
関数c: 事前条件の判定に成功したら関数tは例外をスローしない
→if
関数t: 呼び出しが高コスト、または呼び出し回数が多い
関数c: 事前条件の判定に成功しても関数tは例外をスローすることがある
→if+try~catch
…新人に聞かれたらこう答えるかな
実際は長時間ブン回す機械学習ならともかく、Pythonで速度を気にしても仕方がないケースが多いので
あまり厳密に考えてはいない…
(最後に本音がある)
以下、例外をスローする関数を関数t
事前条件を検証する関数を関数cとする
関数t: 呼び出しが低コスト、かつ呼び出し回数が少ない
→try~catch
関数c: 関数tと同等の呼び出しコスト
→try~catch
関数t: 呼び出しが高コスト、または呼び出し回数が多い
関数c: 事前条件の判定に成功したら関数tは例外をスローしない
→if
関数t: 呼び出しが高コスト、または呼び出し回数が多い
関数c: 事前条件の判定に成功しても関数tは例外をスローすることがある
→if+try~catch
…新人に聞かれたらこう答えるかな
実際は長時間ブン回す機械学習ならともかく、Pythonで速度を気にしても仕方がないケースが多いので
あまり厳密に考えてはいない…
852デフォルトの名無しさん
2018/06/13(水) 08:00:31.25ID:xCQwBm/v >>850
Python とかの例外機構が備わってる言語だとそれぐらいですむけどC言語とかでまともに異常処理を行うと 2/3 程度は異常処理になるのはよくある
Python とかの例外機構が備わってる言語だとそれぐらいですむけどC言語とかでまともに異常処理を行うと 2/3 程度は異常処理になるのはよくある
853デフォルトの名無しさん
2018/06/13(水) 09:05:52.82ID:nKOKvJ/8 何かとすぐ速度って言葉でマウント取るけど例外キャッチは書き手の意図を拾うって意味でも大事でしょ
例外を迂回しただけだったら例外でる可能性についてどこまで書き手が想定してるのか分からない
例外キャッチが明文化されていれば少なくとも意図された挙動の範疇かどうかはすぐにわかる
例外を迂回しただけだったら例外でる可能性についてどこまで書き手が想定してるのか分からない
例外キャッチが明文化されていれば少なくとも意図された挙動の範疇かどうかはすぐにわかる
854デフォルトの名無しさん
2018/06/13(水) 12:31:02.16ID:stoLLb9S 何かとマウントって言葉が出てくる繊細チンピラ。
死ぬまでママとだけお話しててくんねーかな。
死ぬまでママとだけお話しててくんねーかな。
855デフォルトの名無しさん
2018/06/13(水) 12:34:43.41ID:IIqCHZSl 今から大事な事言うからよく聞けおまけら
例外はキャッチするな
例外はキャッチするな
856デフォルトの名無しさん
2018/06/13(水) 12:42:59.42ID:K3GazO76 そしてイベントは発火する
857デフォルトの名無しさん
2018/06/13(水) 15:24:39.05ID:mbrmHeFX なんでpythonの例外の話してるのに
CとかJavaの例出してくるの?
馬鹿なの?
CとかJavaの例出してくるの?
馬鹿なの?
858デフォルトの名無しさん
2018/06/13(水) 17:11:58.37ID:f64ViDwD fuga = "{},{},{}\n".format(
hoge[0],
hoge[1],
hoge[2],
)
output.write(fuga)
って感じのことをしたいんですが、hoge[300]とかまで続くときはどうしたら良いのでしょう?
hoge[0],
hoge[1],
hoge[2],
)
output.write(fuga)
って感じのことをしたいんですが、hoge[300]とかまで続くときはどうしたら良いのでしょう?
859デフォルトの名無しさん
2018/06/13(水) 17:13:25.10ID:f64ViDwD \nは /nです><
860デフォルトの名無しさん
2018/06/13(水) 17:14:43.92ID:HXlAcUu8 "\n".join(hoge)
861デフォルトの名無しさん
2018/06/13(水) 17:50:47.15ID:mbrmHeFX fuga = '{}\n'.format(','.join(f'{_}' for _ in hoge))
862デフォルトの名無しさん
2018/06/13(水) 17:56:50.72ID:e5rB4/3b fmt = "{}" + (",{}" * (len(hoge) - 1)) + "\n"
fuga = fmt.format(*hoge)
fuga = fmt.format(*hoge)
863デフォルトの名無しさん
2018/06/13(水) 18:01:58.20ID:f64ViDwD 皆さん神ですね。
ありがとうございます
ありがとうございます
864デフォルトの名無しさん
2018/06/13(水) 18:22:34.93ID:f64ViDwD hoge = ["さんま","うなぎ","カッパ"]
fmt = "{}" + (",{}" * (len(hoge) - 1)) + "\n"
fuga = fmt.format(
hoge[0].replace("さんま","ぐんま")
)
これだと
hoge[1]
hoge[2]に変更が無いとしても書かないとエラーになりますよね?
hogeが300個くらいあるとき、どうしたら良いでしょう?
fmt = "{}" + (",{}" * (len(hoge) - 1)) + "\n"
fuga = fmt.format(
hoge[0].replace("さんま","ぐんま")
)
これだと
hoge[1]
hoge[2]に変更が無いとしても書かないとエラーになりますよね?
hogeが300個くらいあるとき、どうしたら良いでしょう?
865デフォルトの名無しさん
2018/06/13(水) 18:29:08.68ID:HXlAcUu8 イマイチやりたいことが見えないが、
fuga =",".join([str(s).replace("さんま","ぐんま") for s in hoge])+ "\n"
fuga =",".join([str(s).replace("さんま","ぐんま") for s in hoge])+ "\n"
866デフォルトの名無しさん
2018/06/13(水) 18:33:39.96ID:f64ViDwD867デフォルトの名無しさん
2018/06/13(水) 18:43:39.13ID:f64ViDwD なんというか列300、行400くらいのファイルが有りまして。
一行毎に変換処理を書いてるのですが、列は処理しない項目が多いのです。
300の内、10項目ほどしか処理が無いのです。
hoge[0]〜hoge[300]とか力技でも良いかなと思って書いてますが、"変換しない"箇所はスキップできないかなーと思っているしだいです。
一行毎に変換処理を書いてるのですが、列は処理しない項目が多いのです。
300の内、10項目ほどしか処理が無いのです。
hoge[0]〜hoge[300]とか力技でも良いかなと思って書いてますが、"変換しない"箇所はスキップできないかなーと思っているしだいです。
868デフォルトの名無しさん
2018/06/13(水) 19:00:21.31ID:f64ViDwD あ、ファイルはcsvでカンマでsplitしています。
869デフォルトの名無しさん
2018/06/13(水) 19:53:45.62ID:hQ1ezRY5 import csv
with open("1.csv") as input:
writer = csv.writer(output)
reader = csv.reader(input)
for row in reader:
row[0] = row[0].replace("さんま", "ぐんま")
writer.writerow(row)
with open("1.csv") as input:
writer = csv.writer(output)
reader = csv.reader(input)
for row in reader:
row[0] = row[0].replace("さんま", "ぐんま")
writer.writerow(row)
870デフォルトの名無しさん
2018/06/13(水) 19:55:11.91ID:hQ1ezRY5 あら
ごめん、 は空白に置き換えて
ごめん、 は空白に置き換えて
871デフォルトの名無しさん
2018/06/13(水) 20:28:49.06ID:c9M6jDul872デフォルトの名無しさん
2018/06/14(木) 10:01:22.21ID:b+x6hMO7 fuga =",".join(str(s).replace("さんま","ぐんま") for s in hoge if s == 0)+ "\n"
じゃないのか
じゃないのか
873デフォルトの名無しさん
2018/06/14(木) 10:07:09.32ID:zDlcM/ZJ >>868
csvならpandas使ったらいいよ。ちょっと慣れないとつかいにくいけど色々と処理も用意されてるし、速いし。
csvならpandas使ったらいいよ。ちょっと慣れないとつかいにくいけど色々と処理も用意されてるし、速いし。
874デフォルトの名無しさん
2018/06/14(木) 13:13:48.87ID:bu9zg9Xo ありがとう、pandasは選択肢に入っていますが基本的な処理を覚えたいので使用せずに試行錯誤しています
875デフォルトの名無しさん
2018/06/14(木) 19:34:53.33ID:HGnKAsKb spyderの変数エクスプローラーの表示を暗くしたいんだけど何かいい方法ないですか?
876デフォルトの名無しさん
2018/06/16(土) 07:00:13.60ID:rHcXKEyD prettytableについて質問です。
以下の場合、City nameは左揃え、AreaとAnnual Rainfallは右揃えになるんですが、
ヘッダのみ中央揃えにするにはどう書けばよいんでしょうか?
$ vim alignment.py
#!/usr/bin/python3
from prettytable import PrettyTable
x = PrettyTable()
x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
x.align["City name"] = "l"
x.align["Area"] = "r"
x.align["Annual Rainfall"] = "r"
x.add_row(["Adelaide", 1295, 1158259, 600.5])
x.add_row(["Brisbane", 5905, 1857594, 1146.4])
x.add_row(["Darwin", 112, 120900, 1714.7])
print(x)
$ ./alignment.py
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
| Adelaide | 1295 | 1158259 | 600.5 |
| Brisbane | 5905 | 1857594 | 1146.4 |
| Darwin | 112 | 120900 | 1714.7 |
+-----------+------+------------+-----------------+
以下の場合、City nameは左揃え、AreaとAnnual Rainfallは右揃えになるんですが、
ヘッダのみ中央揃えにするにはどう書けばよいんでしょうか?
$ vim alignment.py
#!/usr/bin/python3
from prettytable import PrettyTable
x = PrettyTable()
x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
x.align["City name"] = "l"
x.align["Area"] = "r"
x.align["Annual Rainfall"] = "r"
x.add_row(["Adelaide", 1295, 1158259, 600.5])
x.add_row(["Brisbane", 5905, 1857594, 1146.4])
x.add_row(["Darwin", 112, 120900, 1714.7])
print(x)
$ ./alignment.py
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
| Adelaide | 1295 | 1158259 | 600.5 |
| Brisbane | 5905 | 1857594 | 1146.4 |
| Darwin | 112 | 120900 | 1714.7 |
+-----------+------+------------+-----------------+
877デフォルトの名無しさん
2018/06/16(土) 10:20:34.77ID:jsEUCTRB878デフォルトの名無しさん
2018/06/16(土) 11:20:55.92ID:eJREzlFG すいませんめっちゃ初心者なんですけど
>>> "5" + 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> "5" - 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'int'
こんな感じで
"5" + 1と"5" - 1という非常に類似した二つの「異なる型どうしの操作で起こるエラー」が
全く違うエラー内容になるのはなぜですかね。
Python3です。
>>> "5" + 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> "5" - 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'int'
こんな感じで
"5" + 1と"5" - 1という非常に類似した二つの「異なる型どうしの操作で起こるエラー」が
全く違うエラー内容になるのはなぜですかね。
Python3です。
879デフォルトの名無しさん
2018/06/16(土) 11:28:35.03ID:tSBHlQGm 知らんけど文字列同士の+は定義されてるけど-はされてないからじゃないけ
880デフォルトの名無しさん
2018/06/16(土) 11:31:58.26ID:naGQb1Ef >>877
野良
野良
881デフォルトの名無しさん
2018/06/16(土) 11:35:39.24ID:Tvz9jTpd ゴミをつつくな
882デフォルトの名無しさん
2018/06/16(土) 16:05:58.30ID:TJIUHWP+ 研究室のMatlabが2017bから更新されないからPythonに移行したくてMatlabと似た使用感のSpyder使い始めたけど
古いMatlabでもグラフ作成はPythonより圧倒的にやりやすいから移行できない
下記のQiitaの記事読んだけどいまいち自由自在に操作できない
https://qiita.com/skotaro/items/08dc0b8c5704c94eafb9
古いMatlabでもグラフ作成はPythonより圧倒的にやりやすいから移行できない
下記のQiitaの記事読んだけどいまいち自由自在に操作できない
https://qiita.com/skotaro/items/08dc0b8c5704c94eafb9
883デフォルトの名無しさん
2018/06/16(土) 16:10:09.64ID:mGUvusUx >>882
だからどうしてほしいの?
だからどうしてほしいの?
884デフォルトの名無しさん
2018/06/16(土) 16:29:50.18ID:naGQb1Ef pythonをdisりに来ただけか
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 【音楽】松山千春、女性っぽい名前に親恨んだ「名簿には必ず女の方に入ってる。情けなかったりもしたけどね」 [湛然★]
- 神田沙也加さん元恋人で元俳優の前山剛久 六本木のメンズラウンジ勤務を報告「真叶(まなと)です。よろしく」 [muffin★]
- どこだ?強ええええバキぼんやは????
- ( ´・ω・` )どいてもらえます?
- 【朗報】ひろゆき、奥さんと仲が良い [963243619]
- 【埼玉】34歳無職、置き配📦を盗みまくる!その数、400点!😱 [718678614]
- 読めるけど書けない漢字挙げてけ
- 福井県民に頭おかしくされて悔しいからスレ立て
