[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/25 02:19 / Filesize : 249 KB / Number-of Response : 1017
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPython(超初心者用) その32



1 名前:デフォルトの名無しさん mailto:sageteoff [2017/02/04(土) 11:01:07.30 ID:koQjiQcQ.net]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その31
echo.2ch.net/test/read.cgi/tech/1476246889/
関連スレ
Pythonのお勉強 Part52
echo.2ch.net/test/read.cgi/tech/1483756857/
◆関連リンク Python の Home Page
ttp://www.python.org/
◆長いコードはこういうところにはってください
ttp://ideone.com/
ttp://codepad.org/
ttp://pastebin.com/
ttp://dpaste.com/
ttps://try.jupyter.org/
◆まとめwiki
ttp://python.rdy.jp/

ネットにはデマ情報がいっぱい残ってるので正しい情報をメモ
cmd で UTF-8 使える方法 (chcp 65001 について) ttp://nazochu.blogspot.jp/2011/08/blog-post_26.html
mintty ttp://dogmap.jp/2011/11/15/mintty/
mintty ttp://tanakh.jp/posts/2011-11-15-windows-terminal.html

色々紆余曲折あったけど Git インスコして GitBash 使うのが一番楽っぽい
https://git-for-windows.github.io/

809 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 19:59:36.65 ID:EHnwNQwM.net]
大体あってる
俺と同じような低脳が沢山いるからできるなら使わない方が良いってなるんだが

810 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 20:13:15.76 ID:SxrvnFMh.net]
戻り値の概念がいまいち理解できずに困っています

def gauss(n):
sum = 0
for i in range(1, n+1):
sum += i
return sum

print (gauss(100))

とするじゃないですか。そうすると1〜100の和の5050が返ってきますよね
でもreturn使う理由がよく分からないんですよ。関数に引数入れたときの計算結果は一つに定まってるじゃないですか
だからreturnなんか使わなくてもgauss(100)と入力すれば5050が出るんじゃないかと。でも出ないんですよね

811 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 20:37:27.43 ID:hCSBa/z+.net]
数学の関数とは違う。結果が一つに定まるとは限らない、例えばinput関数
input('何か適当に入力しろよ>')

812 名前:デフォルトの名無しさん [2017/03/14(火) 20:44:36.81 ID:JZnTb5HD.net]
関数ってファイル処理だけさせたりもするから
返り値なんてなくても・・・

813 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 20:47:50.22 ID:ZhDhc0/i.net]
>>796-797
Pythonは高脳をターゲットに開発された言語だからな。
低脳にはfor elseの素晴らしさは理解不可能

>>798
あとdef gauss(n)
もnつけなくて正しく動作する気がするよね
def gaussでOKだよね

814 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 20:53:57.47 ID:gIyZXesU.net]
>>801
guidoは今後のPython初学者のために複雑性を増やしたくないって言ってんだろがゲロカス
板橋まで走って逃げるな死ね
https://www.python.org/dev/peps/pep-3136/

815 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 13:06:43.36 ID:kWoiZWut.net]
パイソンは超ヌーブなんですけど
アナコンダ入れるかパイソンそのまま入れるかどっちがオススメですか??

816 名前:デフォルトの名無しさん [2017/03/15(水) 13:18:54.12 ID:1B/djtP8.net]
>>803
どういう環境を構築したいか書いてくれないと答えようがない

817 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 13:36:37.62 ID:7YWEdixI.net]
太いのが好き



818 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 13:42:28.24 ID:kWoiZWut.net]
>>804
テンソルフローとかいうのを触ってみようと思います

819 名前:デフォルトの名無しさん [2017/03/15(水) 13:55:07.15 ID:1B/djtP8.net]
>>806
公式のインストールに関するドキュメントは読みましたか?
https://www.tensorflow.org/install/install_windows

820 名前:デフォルトの名無しさん [2017/03/15(水) 14:03:28.57 ID:mmE2Q0nO.net]
>>803 アナコンダ入れた方がいいだろう。

821 名前:デフォルトの名無しさん [2017/03/15(水) 14:04:23.54 ID:1B/djtP8.net]
個人的には

#Python3.5.3入れる
https://www.python.org/downloads/release/python-353/

#仮想環境をつくり、アクティベートする
python -m venv tf
tf\Scripts\activate.bat

#tensor flowを入れる
pip3 install --upgrade tensorflow

がいいっと思います

822 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 15:27:54.58 ID:kWoiZWut.net]
>>808
なんか上の方で、アナコンダ入れるとなんかあった時に大変みたいなのを見たのですか大丈夫ですかね・・?
>>809
ありがとうございます、
2ブロック目の仮想環境を作り、アクティベートのところですが、ここの役割は何でしょうか??これがないと動かないのでしょうか?

823 名前:デフォルトの名無しさん [2017/03/15(水) 16:22:40.13 ID:71YRh3pu.net]
超ヌーブならアナコンダ一択やろ

824 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 16:51:50.83 ID:D4lD2LgX.net]
逆でない?
判ってる人とかお試しで触る程度ならanacondaでいいだろうけど
python自体が初めてでanacondaから入ると後々苦労するのが目に見えるが

>>809のやり方ならそんなに手間変わらんのだから
そっちの方がいいと思う

825 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:02:57.88 ID:kWoiZWut.net]
なるほど、 仮想環境のアクティベートはおまじないと思ってやっちゃった方がよかですか?

826 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:13:13.53 ID:nVuVQrDL.net]
うん、イイヨー
anacondaはちゃんと最新版のを煎れるようにね

827 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:15:06.68 ID:kWoiZWut.net]
え、この流れやとアナコンダはダメなのでは・・・?どっちが正しいと?



828 名前:デフォルトの名無しさん [2017/03/15(水) 17:29:32.79 ID:rl+wZjWB.net]
まずpythonを学ぶべきだ
こんなクソクエスチョンするようなカスがいきなりtensorflowなんて使えるかよ

829 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:32:02.39 ID:D4lD2LgX.net]
混乱させてすまんね

pythonで今後もやってく人 = >>809
機械学習メインでpythonメインでない人 = anaconda

みたいなイメージ?

python今後もやってくなら基本的な環境の作り方ぐらい知らないと苦労するから
俺はどうせやるならちゃんとやった方がいいよねーって思ってんだけど
機械学習をやるのが目的でpythonは手段でしかないならanacondaは
お手軽だよねーって思う人もいる

やれる事は変わらんからお好きな方で

830 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:33:21.58 ID:kWoiZWut.net]
ごめんなさい。。超初心者って書いてるけん許されるかと思いました。。

831 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:35:58.71 ID:kWoiZWut.net]
>>817
なるほど!分かりやすかったですー!
ホントはテンソルフロー動かせたらいいのだけど、パイソン出来たらいろいろ便利そうなのでこの機会にちゃんとしてみようと思います!ありがとうございます!

832 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:38:18.14 ID:lNG1lg3A.net]
いや初心者ほど環境を気にせず使えるanacondaにすべき
嘘教えるな

833 名前:デフォルトの名無しさん [2017/03/15(水) 17:44:17.93 ID:AGhEyNXo.net]
とりあえず初心者は動かしてみて遊ぶべき
環境構築はその後で問題はない

834 名前:デフォルトの名無しさん [2017/03/15(水) 17:52:06.03 ID:3u79xgLU.net]
動かした所で使い道がない事に気づく

835 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:58:44.65 ID:1Y+2q/Q/.net]
今ってウェブ上でコード書いてそのまま実行できるサービスもある環境だからまず最初はそう言うサービスを利用するのをオススメするかな
しばらく遊んでりゃ大体文法も把握できるからそこから環境整えてサイトやら参考書見てお勉強

836 名前:デフォルトの名無しさん [2017/03/15(水) 18:03:59.74 ID:3u79xgLU.net]
初心者の頃とかは公式ドキュメント見てたら4日過ぎてました
とか、良くある事なので

1日4〜5時間は寝た方が良いよ
  (むしろ、眠れなくて草生える)

837 名前:デフォルトの名無しさん [2017/03/15(水) 18:08:01.29 ID:1B/djtP8.net]
サードパーティ製のものを使うより、できる限り公式なもので環境構築できるようにしておいた方がいいよ
ていうか、インストーラでPython入れて、pipでtensorflow入れるだけやん
手間かわらん

仮想環境を使う理由はグローバルな環境にゴチャゴチャ突っ込むのが好きじゃないから
別に構わないなら、Pythonインストールしてpipでtensorflow入れるだけでいいよ



838 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 18:17:10.79 ID:lNG1lg3A.net]
>>824
すげえな
公式ドキュメント見てたら4〜5分で寝れるわ

839 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 18:30:32.51 ID:nVuVQrDL.net]
>>820
初心者がいま普通にanaconda入れるとtensorflow動かない(もうfixされたのかな?

840 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 19:35:03.95 ID:mGKxIZbB.net]
初心者なんか罠踏んで爆発して死んだらええねん
生き残った奴こそ素質がある

841 名前:デフォルトの名無しさん [2017/03/15(水) 19:45:59.62 ID:1B/djtP8.net]
>>828


842 名前:デフォルトの名無しさん [2017/03/15(水) 20:28:31.96 ID:IsHCJowS.net]
>>828
死んだのにまだ未練残してるんですね
一刻も早く成仏出来ることをお祈りしています

843 名前:デフォルトの名無しさん [2017/03/15(水) 20:55:46.33 ID:KVS3OOCo.net]
print([i * 10for i in range(2)])
これがエラーにならないって糞なパース処理だな

844 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 20:55:53.65 ID:dhTQXuE0.net]
機械学習やるんならいきなりライブラリ使うんじゃなくて
最低でも線形回帰,主成分分析,NNあたりはフルスクラッチできるようになってからの方がいいと思う

845 名前:デフォルトの名無しさん [2017/03/15(水) 20:56:59.45 ID:KVS3OOCo.net]
こうかくとちゃんとエラー出してくれるのに
print([i * 0xafor i in range(2)])
もちろんこうかけばエラーはでない
print([i * 0xa for i in range(2)])

846 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 21:31:48.90 ID:XYUUle5Y.net]
パイソンをインストールしたんだけど、VSみたいにデバッグできると便利だなと思うんだけど、どしたらええかな?
今はコマンドプロンプトから実行してるんだけど、どこでなぜエラーしてるかとかさっぱり分からない

847 名前:デフォルトの名無しさん [2017/03/15(水) 21:52:20.25 ID:1B/djtP8.net]
>>834
VS+PTVSで開発する
仮想環境の構築もpipからのインストールもVSでできる



848 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 22:41:22.15 ID:HXSORuM9.net]
標準で付いてくるIDLEでいいんじゃない

849 名前:デフォルトの名無しさん [2017/03/17(金) 00:45:53.48 ID:cvnYh8La.net]
import curses
def f(screen):
pad = curses.newpad(2, 2)
pad.addstr(0, 0, 'a')
pad.addstr(1, 0, 'b')
for i in range(2):
pad.refresh(0, 0, 0, 0, 1, 2)
pad.getkey()
pad.refresh(1, 0, 0, 0, 1, 2)
pad.getkey()
curses.wrapper(f)

キーを押した時にリフレッシュして
a
b

b
と繰り返して表示されるようにしたいのに
a
b

b
b
ってなってしまいます。
リフレッシュしてbだけ表示したいときに2行目に表示されるbが消えません
これは何でですか?

850 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 11:12:56.54 ID:is7goi9i.net]
>>709
https://gist.github.com/anonymous/0e784ef30407afdba925627e4a459e75
流石にもうちょいマシな書き方があるだろうと思って書いてみた
ただ仕様がもうちょい複雑になるとコードが煩雑になりそうだけど

851 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 13:11:57.91 ID:W1rhDyUi.net]
これ以上に複雑なときは、もう変数ジャンプ組み込む方がまだマシと思う

852 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 13:36:34.43 ID:YJtvdDES.net]
set_jmp

853 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 18:19:46.14 ID:4a5+BdOt.net]
>>838
これってよく使われるパターンなの?
def order():
…return order()

このくらいの長さのメソッドになるともう分かりにくいなって感じるんだが

854 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 19:41:57.57 ID:dpI1G6OF.net]
>>838
俺ならこうかな
foods = ['和食', '洋食', '中華']
def choiceInput(prompt, choices):
 while True:
  print(prompt)
  choice = input('>')
  if choice in choices:
   return choice
  print('入力エラー')

def order():
 while True:
  print('和食, 洋食, 中華')
  choice = choiceInput('どれを食べますか (0/1/2)', ['0','1','2'])
  yesNo = choiceInput(f'{foods[choice]}で本当にいいですか(Y/N)', ['Y', 'y', 'N','n'])
  if yesNo in ['Y', 'y']:
   return choice

855 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 20:25:35.68 ID:is7goi9i.net]
>>841
これくらいだったら分かりにくくならないかと思ったけどやっぱり分かりづらいか

>>842
なるほど
そっちの方がシンプルでいいな

856 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 20:42:07.88 ID:SRILy9AU.net]
無限ループでwhile Trueを書いていいのはゲームプログラミングぐらいです
このように書くべきです
def choiceInput(prompt, choices):
 print(prompt)
 choice = input('>')
 while choice not in choices:
  print('入力エラー')
  print(prompt)
  choice = input('>')

whileの横に条件式を書くことで第三者が見てもわかりやすいリーダブルコードになります

857 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 20:45:06.83 ID:by7KsFNN.net]
シンプルだけど一瞬え?ってなる



858 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 21:25:30.72 ID:4a5+BdOt.net]
>>844
こっちはちょっと冗長な気がするけどdo-whileとかdo-untilがないから致し方ないね

859 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 21:54:06.09 ID:1b+nwuRS.net]
>>844
>無限ループでwhile Trueを書いていいのはゲームプログラミングぐらいです
どういう理由でそうなんですか?

860 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 21:56:06.37 ID:8d4DwhQ0.net]
def choiceInput(prompt, choices):
 choice = -1
 while choice not in choices:
  print(prompt)
  choice = input('>')
if choice not in choices:
   print('入力エラー')

こうじゃいかんの?

861 名前:デフォルトの名無しさん [2017/03/17(金) 23:04:53.49 ID:scRdPl5f.net]
書いてあるやん

862 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 23:05:23.72 ID:woddruPm.net]
>>844
同じ内容を2回書くのは修正があったときに修正漏れしそうで嫌

863 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 23:19:30.39 ID:AOLqOhzC.net]
def choiceInput(prompt, choices):
  choice = None
  while choice not in choices:
    if choice is not None:
      print('入力エラー')
    print(prompt)
    choice = input('>')
  return choice

864 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 10:25:09.78 ID:nckgi/Sy.net]
>>850
同じ内容を関数にまとめるのは常識

865 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 10:27:37.34 ID:iWX2QE0o.net]
>>851
これが一番しっくりきた

866 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 11:33:37.63 ID:1jN6Nl4i.net]
>>852
それは >>844 に言って欲しいし
あの程度の奴でいちいち関数化するのもどうかと思う

867 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 11:59:15.66 ID:njmdr4yw.net]
>>846
横だけどご存知なら教えて下さい
do〜系の処理系を持たないのはpythonのポリシーか何かですか?



868 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 12:55:48.59 ID:1jN6Nl4i.net]
>>855
Do
 ...
Loop
って言うのが構文的に難しいからでしょ

869 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 14:20:38.66 ID:IfcuZKcb.net]
>>855
https://mail.python.org/pipermail/python-ideas/2013-June/021610.html
Guidoが「馬鹿にはあまりに高度すぎる機能だから拒否する」と述べたので入っていない

プログラミング言語のデザインにポリシーなんて高度なものはなく、基本的に開発者の腹具合だけである
思想というほど成熟したものでもない
俺は嫌いだと言われたら入らない

870 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 14:31:30.97 ID:IfcuZKcb.net]
そうじゃない言語はどれかというとC++とかJavaとか
あれらは委員会による設計をしている
(Javaは怪しいが)独裁者に振り回されることは減る
一方で自分の提案を通そうとするための馴れ合い
仕様の肥大化、策定の長期化を招く

871 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 18:40:35.06 ID:vEldA4mj.net]
python3のクラスで
import unittest
class TestCap(unittest.TestCase):
def test_one_word(self):
text = 'Duck'
self.assertEqual(text, 'Duck')

の場合self.assertEqualはsuper()で呼び出しちゃダメなの?
そもそもどうしてselfが出てくるの?

872 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 20:20:43.59 ID:IfcuZKcb.net]
宗教的な理由のため

873 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 21:48:13.72 ID:G3oyudm3.net]
まあOO自体が一つの宗教
誰が書いても同じようになるというPythonの売りが
OOで見事に消し潰されているのは罪深いことだ

874 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 22:02:42.41 ID:vEldA4mj.net]
つまりどういうことだ

875 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 22:27:57.82 ID:NEZ4wluv.net]
>>862
つまり、そんなこと気にすんなってこと
test ができればオケ

876 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 09:28:19.12 ID:CiiadJVM.net]
>>856
>>857
ありがとう、そうむずかしい構文とは思わなくも思惑は思惑だから仕方ない

>>857
Ritchieにも聞かせたい言葉だな

877 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 10:28:59.82 ID:IinMJCLx.net]
>>864
Python の構文は('_' は空白のつもりね)
1: aaaa
2: __bbbb
3: __cccc
4: dddd
となっていたら 1〜3 をブロックと認識するからブロックの終端の記述がない
なので Do〜While みたいに終端に条件を書かないといけない構文は難しいって話
他の言語は終端があるからそう言う問題は発生しない



878 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 12:32:09.54 ID:xRIvmzBZ.net]
"2017/03/19"みたいな日付とその日の値段が記録されたcsvをパースしてmatplotlibでグラフにしたいんだけど
日付の部分をstrじゃなくて時間の軸として扱うにはどうすればいい?

879 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 12:42:04.00 ID:LWm6dPWw.net]
>>866
strからdatetimeに

880 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 12:59:35.56 ID:xRIvmzBZ.net]
>>867
datetimeのオブジェクトならそのままx軸につっこめる?

881 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 13:13:33.92 ID:LWm6dPWw.net]
>>868
できる

882 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 13:27:30.74 ID:x ]
[ここ壊れてます]

883 名前:RIvmzBZ.net mailto: >>869
ありがとう、strptimeメソッドを使えば文字列から変換できるのね
[]
[ここ壊れてます]

884 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 14:27:32.69 ID:zGHcaEct.net]
tzに注意

885 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 22:28:25.85 ID:Lj5IhMr8.net]
>>865
if-elseと同じじゃない?

886 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 23:52:17.84 ID:W8FwC9AB.net]
print(' '.join(map(str, sorted(set(tmp)))))
#tmp = [3, 4, 2, 1,...N]
#重複削除、並び替え、文字列に変更、つなげて出力


上のようなコードがあるとして、
()のネストはどの位までが許容範囲ですか?

887 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 00:02:48.06 ID:G9+XvfW+.net]
括弧2つまで
toolz.functoolzのpipeとか使う



888 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 00:05:54.26 ID:sXp84j6l.net]
>>873
人それぞれ、ただスタイルガイドには一行は79文字までというのはあるから長すぎるとアウト

889 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 00:14:08.40 ID:3ZZI/KAX.net]
()の数を減らしつつ変数も無いの良いですね!
標準ライブラリとかでも同じ事可能ですか?

890 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 00:26:32.61 ID:G9+XvfW+.net]
>>876
pipeのこと? 自分でpipeメソッドとかpipeオペレータみたいの作ればできるよ
toolz.functoolzのpipeのソース
toolz.readthedocs.io/en/latest/_modules/toolz/functoolz.html#pipe

>>873のコードはこんな感じに
pipe(tmp, set, sorted, partial(map, str), ' '.join, print)

891 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 08:41:28.66 ID:A6CX4sNJ.net]
A= 1:a 2:b 3:c 1:d
B= 1:e 2:f
C= 1:a:e 2:b:f 3:c 1:d:e

Aの数字部分をBの数字で検索して
該当する数字があったらBのアルファベットをAに追加して
Cのような結果を得たいのですが
Aの数字が重複していて辞書が使えなくて
どうすればいいのかわかりません。
ご指導よろしくお願いします。
python2.7です。

892 名前:デフォルトの名無しさん [2017/03/20(月) 10:20:35.47 ID:Ia6BH4Hf.net]
ideone.com/G8bzYg

893 名前:854 mailto:sage [2017/03/20(月) 10:42:07.11 ID:nRwuUvF6.net]
>>865
そうか、インデントに意味ある言語でしたっけ
ブロック構造の明示って結構悩ましいですね
重ねてありがとう

894 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 11:01:45.40 ID:6RAbChbA.net]
>>872
else は else ブロックの開始だから終端ではないでしょ

>>880
やってやれなくはないと思うけど見易さとの両立は簡単じゃないと思う

895 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 13:35:45.83 ID:4V6fNJEd.net]
>>878
Aをいっこずつの辞書たちで作ってマージ

896 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 17:16:42.51 ID:l4MXbYf5.net]
>>878
https://gist.github.com/anonymous/c6225d9299726b47ae4e03189ad8ad0f
一応動くものはできたけどけっこう面倒くさいな
python2.7.13で動作確認

897 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 17:22:42.32 ID:c+tYojiZ.net]
素直に改行した方が見やすいと思う

print(' '.join(
  map(str, sorted(
    set(tmp)))))



898 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 17:27:48.11 ID:G9+XvfW+.net]
>>881
>else は else ブロックの開始だから終端ではないでしょ

do-untilにしてuntilブロックの開始として認識しても同じことじゃない?
untilはその後にインデントされたブロックを受け取らないっていうルールを課せばいいだけで
インデント記法の言語だからってdo-while系の実装が他言語より難しいってのは理解できない

899 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 17:43:29.84 ID:XdgtrFwn.net]
>>878
codepad.org/83uNtpXa

900 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 18:33:03.42 ID:LcNjV7jZ.net]
>>885
いや、だからできないって話じゃなくて
> untilはその後にインデントされたブロックを受け取らないっていうルールを課せばいいだけ
と言うような特殊ルールが必要でしょって話
実際の見た目も...
1: do
2: __aaaa
3: __bbbb
4: until ...
5: while ...
6: __cccc
7: __dddd
8: if ...
9: __eeee
人によるんだろうけど俺には6行目が until ブロックの始まりのように見えてしまう

901 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 18:35:52.50 ID:sXp84j6l.net]
まあGuidoは心の中で普通のwhileで十分やろとか思ってそうだな

902 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 18:58:19.86 ID:MXp+WHcu.net]
1: do
2: __aaaa
3: __bbbb
4: __until ...

なら、そう不自然でもないでしょ。関数のdef~returnと似た感じで。
まあ必要だとは思わんが。

903 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 19:03:55.76 ID:sXp84j6l.net]
untilがブロックの中にあるのはキモすぎるなと、主観だけど

904 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 19:10:07.12 ID:MXp+WHcu.net]
じゃあキーワードを breakif にするとか。

905 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 19:57:03.67 ID:LcNjV7jZ.net]
>>891
それなら
while True:
__aaaa
__if condition:
____break
で充分なような気がする

906 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 20:18:16.81 ID:A6CX4sNJ.net]
>>882 >>883 >>886
みなさん
ありがとうございます!
勉強しながらトライしてみます。

907 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 20:38:40.38 ID:MXp+WHcu.net]
>>892
だから、それ必要ないってポリシーなんでしょ。構文的に難しいって理由じゃなくて。



908 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 20:42:18.91 ID:G9+XvfW+.net]
>>887
インデントされたブロックを受け取らない文なんてPython書いてればいくらでも使うじゃん 特殊じゃないよ
それにuntilの下に必ず空行入れるから6行目がuntilブロックの始まりに見えるなんてこともまずないでしょ

俺は>>889のほうが不自然に感じるかな
for-elseやif-elseを考えるとuntilだけブロック内ってなんか違う気がする

909 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 20:57:25.03 ID:kRRsPMR+.net]
プログラムの先頭でimportしたモジュールを使うクラスをほかのプログラムから呼ぶ時って
呼び出す側のプログラムでもimportしなきゃならないの?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<249KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef