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


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

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



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

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

前スレ
くだすれPython(超初心者用) その38
https://mevius.5ch.net/test/read.cgi/tech/1526522954/

781 名前:724 mailto:sage [2018/11/06(火) 20:09:21.47 ID:QHiQfJwC.net]
724ですけど、変数内に~~や**があるとそれらもSlack側で以下のように反応してしまいました。

~あいうえお~
と波線で囲めば打ち消し線に、
*あいうえお*
だと、太字です。

記号は記号としてポストするにはどうしたらいいんでしょうか?

782 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 20:13:57.06 ID:B9fQWZZ6.net]
*→ *
~→ ~

783 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 20:14:48.35 ID:B9fQWZZ6.net]
(´Д`lll)&to#は半角でな
*→ ~
~→ *

784 名前:724 mailto:sage [2018/11/06(火) 20:28:42.52 ID:QHiQfJwC.net]
>>744
どうもありがとうございます!
試してみます!
今のところ分かったのはこの3つなんですが、記号類をまとめてちゃんと表示する仕組みってありますか?
今ちょっとググってたら
xml.sax.saxutilsのescapeだと<>はエスケープしてくれそうな感じでした。

785 名前:デフォルトの名無しさん [2018/11/06(火) 20:31:38.28 ID:0p0MEBcD.net]
"mrkdwn": false

786 名前:724 mailto:sage [2018/11/06(火) 20:32:44.30 ID:QHiQfJwC.net]
あと、混乱してしまってるんですが、変数textの中にもし<、>、*、~のいずれかが含まれてたら、<、>、&#126;、&#42;に置き換えるには、if文でどう書くんでしょうか?

787 名前:724 mailto:sage [2018/11/06(火) 20:36:27.93 ID:QHiQfJwC.net]
何度もすみません
import xml.sax.saxutils from escape

import htmlのhtml.escape
はどう使い分けるんでしょうか?

788 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 20:51:13.02 ID:B9fQWZZ6.net]
>>747
findを使ってtextを検索し、-1よりでかい数が帰ってくるかどうかためす。
if text.find(’<’) > -1 or text.find(’>’) > -1 or....(略)

789 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 20:56:52.27 ID:B9fQWZZ6.net]
(つづき)
でもってif文のインデントの中に
text=text.replace('before','after').replace('before','after').replace('before','after').replace('before','after')

beforeにはそれぞれ<、>、*、~を入れて
aterには&#42;



790 名前:とかそういうのを書いておく []
[ここ壊れてます]

791 名前:724 mailto:sage [2018/11/06(火) 20:58:43.90 ID:QHiQfJwC.net]
>>749
なるほど!ありがとうございます!

> if text.find(’<’) > -1 or text.find(’>’) > -1 or....(略)
を途中で改行したい場合はどうやるんでしょうか?
バックスラッシュ付けるっぽいんですが、以下だとエラーになります

if text.find(’<’) > -1 or text.find(’>’) > -1 \
or....(略)

792 名前:724 mailto:sage [2018/11/06(火) 20:59:35.67 ID:QHiQfJwC.net]
>>750
ありがとうございます!!

793 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 21:00:46.35 ID:B9fQWZZ6.net]
>>748
前者は基本的に & 、 < 、および > が対象 だが 他の文字もエスケープ汁と命令することが可能

後者は & 、 < 、および > が対象

794 名前:デフォルトの名無しさん [2018/11/06(火) 21:08:58.42 ID:0p0MEBcD.net]
特殊な記号たち
https://api.slack.com/docs/messages/builder?msg=%7B%22text%22%3A%22%60%60%60pre%60%60%60%20*bold*%20%60code%60%20_italic_%20~strike~%22%2C%22username%22%3A%22markdownbot%22%2C%22mrkdwn%22%3Atrue%7D

795 名前:724 mailto:sage [2018/11/06(火) 21:12:17.61 ID:QHiQfJwC.net]
>>753
どうもありがとうございます。
例えば、今回みたいに*や~も含めたいって場合なら前者で指定したらよいって事ですね。

796 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 21:13:16.40 ID:B9fQWZZ6.net]
>>751
途中で\入れるのって
pyrhon上で直接コマンド打ってるときだけじゃね?

pyファイルに書いたのを実行させるときはイラネ

797 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 21:15:03.75 ID:B9fQWZZ6.net]
>>755
んだな
詳しくは>>754と https://docs.python.jp/3/library/xml.sax.utils.html あたりをよんでくれ

798 名前:724 mailto:sage [2018/11/06(火) 21:15:09.62 ID:QHiQfJwC.net]
>>754
どうもありがとうございます!
他にもいくつかあったんですね。
それらの記号を >>749-750>>748の前者の方で試してみます

799 名前:724 mailto:sage [2018/11/06(火) 21:21:01.58 ID:QHiQfJwC.net]
>>756
if text.find(’<’) > -1 or text.find(’>’) > -1
or....(略)

だと、エラーになってしまいました。



800 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 21:21:04.81 ID:B9fQWZZ6.net]
>>756
>pyファイルに書いたのを実行させるときはイラネ
oh
オレ無意識に条件文のif以降を()でくくって最後に:付ける癖があるわ

 ↓
if (text.find(’<’) > -1 or
 text.find(’>’) > -1 or
 ....(略) ...):
        ↑

みたいに()でかこってやれば何行にわけてもおk

801 名前:724 mailto:sage [2018/11/06(火) 21:28:34.65 ID:QHiQfJwC.net]
>>760
へぇ〜
こんな方法もあるんですか!今試したら動いたけれど、
flask8だとW503 line break before binary operator
って言うエラーが出てました

802 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 21:33:57.41 ID:B9fQWZZ6.net]
>>761
アッハイ

or は 行の最後に書かずに
先頭にかけやこのデコスケ野郎

っていうエラーすね。

つまり推奨は
if (text.find(’<’) > -1
or text.find(’>’) > -1
or ....(略) ...):

汚いソースコードの書き方しててすみまそん。。。

803 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 21:37:10.20 ID:B9fQWZZ6.net]
詳しい解説は https://github.com/PyCQA/pycodestyle/issues/513 あたりかな

804 名前:724 mailto:sage [2018/11/06(火) 21:46:50.14 ID:QHiQfJwC.net]
>>762
いや、ありがとうございます。。。
2行目を or から始めてもW503でした。あと、E129も出でます。
E129は2行目の or を if の i から数えて8文字インデントしたら消えました。

805 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 22:02:51.74 ID:B9fQWZZ6.net]
>>764
検証してくれるやつのバージョンによって推奨される書き方がちガッ獲るようだ… https://lintlyci.github.io/Flake8Rules/rules/W503.html

今どきはどーするのが一番正しくてグッドなのか、
誰か他の回答者を待とう (´・ω・`)

806 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 00:09:47.09 ID:kPzZvNDI.net]
>>741
beautifulsoupとurllibっす

807 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 00:53:42.51 ID:QtFDoqkC.net]
>>766
beautifulsoupなら
soup.a['href']
soupはBeautifulSoupオブジェクトな

808 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 01:15:28.23 ID:+978RLDn.net]
>>747


809 名前:Ruby の、CGI.escapeHTML みたいな、HTML エスケープだろ

Python にも、そういう関数があるはず。
ライブラリを探せ

全言語にある!
Google に「html escape」と入れれば、補完で全言語が出てくる。
php, javascript, java, ruby, python ズラズラっと

そういう一般的な関数を、自作したらダメ。
自作したものは、ライブラリよりも品質が低いから
[]
[ここ壊れてます]



810 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 01:23:13.15 ID:mTAgM1WN.net]
キチガイ避けには「ruby」でNGワード登録が簡単・便利

811 名前:724 mailto:sage [2018/11/07(水) 10:31:30.88 ID:eBlvm3p7.net]
>>757
from xml.sax.saxutils import escape
text = 'あいうえお'
text = f'~{text}~'
text = escape(text, {'*': '&#42;', '~': '&#126;', '': '', '': ''})
上は実際には半角です。

textをSlackに送信すると、Slackでは、~あいうえお~と表示して欲しいんですが、
&#126;あいうえお&#126;
と、表示されてしまいます。
どこが間違えてますか?

あと、
* を置き換える文字列は&#42;(半角で)のように、
` を置き換える文字列
_ を置き換える文字列
ってどうやって調べたらよいんでしょうか?

>>765
自分のバージョンはPython 3.6.4、flake8 3.6.0でした

812 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 12:02:53.55 ID:gi2gLu8r.net]
最低限↓に目を通してからslackの話を続けて貰えるか?
https://api.slack.com/docs/message-formatting#how_to_escape_characters

813 名前:デフォルトの名無しさん [2018/11/07(水) 13:51:51.54 ID:A06G1xNF.net]
https://docs.python.jp/3/library/html.html

814 名前:デフォルトの名無しさん [2018/11/07(水) 18:19:51.85 ID:aDO62va+.net]
https://dotup.org/uploda/dotup.org1686239.png

>>> import numpy as np
>>> from PIL import Image
>>> im = Image.open('dotup.org1686239.png')
>>> np.array(im)
>>> np.array(im)[:,-1::-1,:]
>>> Image.fromarray(np.array(im)[:,-1::-1,:]).save('dotup.org1686239_rev.png')

便利やね
python だぁぃすき

815 名前:デフォルトの名無しさん [2018/11/07(水) 18:32:37.21 ID:fvfWV4IU.net]
conveert dotup.org1686239.png -flop dotup.org1686239_rev.png

ImageMagickのが簡単だよ
チンポ だぁいすき

816 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 17:18:54.41 ID:vDDK8kog.net]
if random.randint(0,1):
step=1
else:
step=-1

この場合のrandom.randintってどういう意味?
乱数で0か1が発生した場合に1、その他の数字のときelseって意味じゃないよね?
よくわからん

817 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 17:21:04.79 ID:/8FytPr/.net]
スクレイピングなんですがjava?でコンテンツが作られている動的なページはSeleniumのようなwebBrowserをさわって値を取るしか無いんでしょうか
vbaで似たようなのを作ったんですが読み込み等が遅く、処理の高速化を考えていたのですがSeleniumだと実現できないでしょうか

818 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 17:44:25.17 ID:AFbSMZjK.net]
random.randintで0がでたらfalse
1が出たらtrueじゃない?

819 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 18:13:45.79 ID:KFTKKYEO.net]
>>777
コード読むとその解釈で合ってると思うけど、そのプロセスが理解できない
randint(a,b)ってa~bの中で整数を生成するんだよね?
randint(0,1)なら0か1のどちらかを生成する
つまりわからん



820 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 18:30:34.85 ID:AFbSMZjK.net]
多分わからないのはbool型についてかな
ちょっと検索して出てきたから読んだらいいかも
https://note.nkmk.me/python-bool-true-false-usage/

821 名前:デフォルトの名無しさん [2018/11/08(木) 18:47:09.00 ID:5iWhW6P3.net]
>>778
PyhonのTrue, Falseは

822 名前:0, 1と等価
実際True+Trueを評価すると2になる
[]
[ここ壊れてます]

823 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 19:50:06.88 ID:KFTKKYEO.net]
TrueとFalseがランダムに生成されるんだろ
つまりif節の中にTrueもFalseも入ってることになんね?

824 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 19:51:27.62 ID:UKor1bXF.net]
ならんよ>>781

825 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 19:54:09.65 ID:KFTKKYEO.net]
俺がアホなのか
全くスッキリと理解できないw

826 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 20:06:42.76 ID:AFbSMZjK.net]
if random.choice([True, False])
こう書き換えれば少しはわかりやすいかな

827 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 20:21:32.77 ID:KFTKKYEO.net]
if random.randint(0,1)==True:
と同じ意味だよね?
これなら簡単に理解できるけど、==Trueがなくても文法として成立するのがよくわからない

828 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 20:23:05.84 ID:UKor1bXF.net]
暗黙の了解で省略されてるだけ
英語の関係代名詞的なさむしん

829 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 20:30:18.68 ID:KFTKKYEO.net]
>>786
マジかよ
人に優しくない言語やんけ!
何時間悩んだと思ってんや



830 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 20:32:58.15 ID:UKor1bXF.net]
もう忘れないだろうから
悩んだことはむだではない
タブンネ

831 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 21:02:16.60 ID:dNW1RU/q.net]
主流言語はみんなそんな感じなんだけどPythonは比較演算子強制でも良かった気もしないでもない。
でも、
bool値を返すisBigメソッドを実装したクラスChinkoがあったとして…
myChinko = new Chinko(16)
if myChinko.isBig():
と自然な英文風に書けるというスゴイ利点もある!
ちなみに12以下だとFalseを返します

832 名前:デフォルトの名無しさん [2018/11/08(木) 21:03:49.60 ID:JRn9O86F.net]
>>781
1とTrue、0とFalseを同一として認識するのは明らかに間違っている

833 名前:デフォルトの名無しさん [2018/11/08(木) 21:04:47.54 ID:j6Jh7/pK.net]
自然言語風に書けるのはデメリットやぞ

834 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 21:15:17.71 ID:dNW1RU/q.net]
冗談やで。俺は比較演算強制がよかった

835 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 21:16:04.42 ID:fqxKHZms.net]
ネェ、チンコダッテ?( ´д)オクサン(д` )アラヤダワァ

836 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 21:53:09.37 ID:QbjXdk8c.net]
>>785
==trueとか言うゴミコード書くなよ

837 名前:デフォルトの名無しさん [2018/11/08(木) 22:07:08.42 ID:j6Jh7/pK.net]
ゴミって些末な事ばかり気にしてゴミコードってゆうよねw

838 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 22:09:00.10 ID:Sh+rXr23.net]
言うをゆうって書く人は初等教育を受けてるのかしら

839 名前:デフォルトの名無しさん [2018/11/08(木) 22:14:43.87 ID:j6Jh7/pK.net]
言うはゆうて読むんやで



840 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 22:24:11.22 ID:lbifDjkh.net]
誰も読み方について話してないぞ。相当な馬鹿だな

841 名前:デフォルトの名無しさん [2018/11/08(木) 22:30:06.41 ID:j6Jh7/pK.net]
バカのくせに人の事バカってゆうの恥ずかしいよバカw

842 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 22:32:56.23 ID:KFTKKYEO.net]
ちなみにこういう省略って他にどんなのある?
他の文法で省略あったらまた騙されるなー

843 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 22:53:42.09 ID:PhR3Qfyw.net]
perlはエゲツナイぞー

844 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 23:07:43.11 ID:QbjXdk8c.net]
==Trueが必要だと思う奴はその戻り値に対しても==Trueしとけw

845 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 23:17:51.55 ID:yMIHOz65.net]
the reason why ~ みたいなもんだな

846 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 23:20:05.30 ID:QHwNiY6E.net]
>>776
5ch みたいな動的または、ajax などの非同期処理で、ページの内容を取得しているものは、
その内容が読み込まれるまで、その要素や内容は存在しない

5ch なら、まず空のHTML を送ってくるから、ajax で読み込まれるまで、内容が存在しない

漏れはRuby で、Selenium WebDriver を使って読み込んでいる。
その要素が出現するまで、wait される。
簡単なのは10秒ぐらい、sleep すればよい

5ch なんか、バグが多いから、JavaScript が無限ループしたりして、
30秒待っても、Selenium WebDriverから、そのページへアタッチ出来ないこともある

847 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 23:22:35.59 ID:a5prroZo.net]
「Ruby」でNGワード登録が簡単・便利

848 名前:デフォルトの名無しさん mailto:sage [2018/11/08(木) 23:44:41.94 ID:mrd9U+a3.net]
50%の確率で2つの処理を選択したい場合によりスマートな書き方はありますか?今はべたべたにこう書いてます
if np.random.rand() > .5:
do1()
else:
do2()

849 名前:デフォルトの名無しさん [2018/11/09(金) 02:19:40.37 ID:19dRG8QF.net]
(do1 if np.random.rand() > .5 else do2)()



850 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 04:00:11.42 ID:bq31MDXV.net]
すごい!そんな書き方があるのですね。
よければ何という記述方法か教えてもらえますか?(どうやって調べたら出ますか)

851 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 04:18:51.46 ID:Je0vwCJT.net]
np使う理由はあるの?

852 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 08:30:00.34 ID:0hfWLYYN.net]
pycharmでshadows name xxx from outer scopeっていうwarningが出るんだけど、これは何が問題なんや

853 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 09:42:26.78 ID:VXODTqLC.net]
同じ名前の変数が定義されたことで
外のスコープの変数が隠されている
という警告

854 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 09:43:04.08 ID:VXODTqLC.net]
Warningに書いてある通りだな

855 名前:デフォルトの名無しさん [2018/11/09(金) 10:18:23.10 ID:19dRG8QF.net]
>>808
三項演算子
可読性下がるから使い過ぎはお勧めしない

856 名前:デフォルトの名無しさん [2018/11/09(金) 11:58:21.04 ID:p9aTnaT/.net]
ちょうど1/2の確率が欲しいとき
if random.rand(0, 1) > .5:
が正解?
それとも
if random.rand(0, 1) >= .5:
が正解?
どっちも間違い?

857 名前:デフォルトの名無しさん [2018/11/09(金) 12:04:45.46 ID:mwKVhTqG.net]
どっちも間違い

だが少なくとも
random.rand() > .5
では偏りが生じる

858 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 12:40:54.60 ID:0q7AG6jo.net]
>>814
0×1の配列?

859 名前:デフォルトの名無しさん [2018/11/09(金) 12:41:31.35 ID:ZavMgXDP.net]
Openpyxlでエクセルシートをリスト化した後
シート名を条件に抽出することはできますか?
すみません、調べてもわかりませんでした。



860 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 13:11:43.28 ID:XhL65g6u.net]
>>814俺だったらこうする
if random.randrange(2):

「一定回数抽選すると、AとBの出現率が必ず1:1になる」ことを求めているならシャッフルを使う
a=[0]*50+[1]*50
random.shuffle(a)

861 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 13:44:15.88 ID:lOOqdq/Y.net]
deapのbase.Fitnssでweightsの動き方がよくわからないんですが
仕様を説明したサイトはありますか?

862 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 13:47:08.53 ID:iep8j/69.net]
>>817
シート名は .get_sheet_names()でリストでとってこれるから
とってきたあと
1つ1つのシート名でifすればいいだろ

863 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 13:49:25.70 ID:iep8j/69.net]
>>819
https://deap.readthedocs.io/en/master/api/base.html はもう読んでる?

864 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 14:27:01.20 ID:D1KL18mO.net]
python2.7 pandasのto_csvでの出力、文字コードについてです
utf8のdfがありコレをsjis(sjisで表現出来ない文字は無視や?置き換えで良い)にしてcsvにしたいです
調べると
with codecs.openでencoding='cp932' errors='ignore'で出力ファイルを開き
df.to_csv(ファイルオブジェクト, encoding='cp932')
で出来ると書いてあったのですが普通にUnicodeエラー出ます
何が原因でうまくいかないんでしょうか、また他の解決法なにかありませんかね

865 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 15:23:15.00 ID:iep8j/69.net]
>>822
ソースコードの文字コードは何で書いてる
OSは何よ

Unicodeエラーの内容は略さず書いて

866 名前:デフォルトの名無しさん [2018/11/09(金) 16:18:25.51 ID:aAkZVDrn.net]
PythonがWEBで

867 名前:覇権取れば最強のスクリプト言語になるのにな
Djangoとかいうゴミはいいから早くRailsとかLaravel並みにいいフレームワーク作ってくんね?
[]
[ここ壊れてます]

868 名前:デフォルトの名無しさん [2018/11/09(金) 17:36:50.37 ID:rwK1ciOK.net]
GoogleってWEB開発にPython使ってるらしいけどフレームワークはDjangoなのかな?
社内で別のフレームワーク使ってんだったら公開してほしいな

869 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 19:22:48.23 ID:lOOqdq/Y.net]
>>821
それは読んだんですが多目的最適化で10倍や100倍に設定したら具体的にどう評価を変えているのかが書いていなかったので



870 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 19:31:33.70 ID:iep8j/69.net]
>>826
weights って重み付けだから、
いっぱいのときも逐一自分で指定するもんじゃないの

>多目的最適化で10倍や100倍に設定したら具体的にどう評価を変えているのか
俺にはちょっとなにいってるのかよくわかんない(´・ω・`)

各重みの最適値さがしなら
プロジェクト・しらみつぶし が たぶん一番いい・・・

871 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 12:15:02.20 ID:seRmY1tJ.net]
https://stackoverflow.com/questions/42866743/lambda-function-explanation/42867119

repeating_data = reduce(lambda l, x:
l.append(x) or l if x not in l else l,
columns['Hello'], [])

Columns["Hello"] has [1,1,2,3,4,5,6,6,7,8,9,9,10,0]


このlambda式のl.appned(x) or lの"or l"と
if x nor in l else lの"else l"がよくわからないんですが、
つけないとエラーになるので必要なのでしょうが、どのような意味なのでしょうか?

872 名前:825 mailto:sage [2018/11/10(土) 12:26:13.87 ID:seRmY1tJ.net]
質問ばかりで申し訳ないのですが、なぜこの式でreduceを使っているのかもよくわかりません。
reduceでぐぐるとすべて畳み込んで計算すると書いてあるところが多いのですが、関数がl.append(x) or lなので違うのでしょうか?

873 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 13:07:05.83 ID:u9Es1usX.net]
>>828-829
条件式(他言語のいわゆる三項演算子や条件演算子と呼ばれる物の代替)
https://docs.python.org/ja/3/reference/expressions.html#conditional-expressions
そしてlist.appendの戻り値はNoneなので常にorの右辺が評価され返される

つまり新しいリストに含まれていなければ追加し、さもなければそのまま
あとは先方のレスにもset使えと書かれてると思うけど。reduceの動作は以下
https://docs.python.org/ja/3/library/functools.html#functools.reduce

874 名前:826 mailto:sage [2018/11/10(土) 13:46:44.78 ID:seRmY1tJ.net]
>>830
丁寧なレスありがとうございます。list.appendの戻り値がNoneだなんて意識しないで使ってました。
破壊的メソッドだからなんだそうですが、自分でもうちょっと勉強してみます。

875 名前:826 mailto:sage [2018/11/10(土) 15:23:32.40 ID:seRmY1tJ.net]
if x not in l else lの"else l"を省略すると
SyntaxError: invalid syntax
が出るんですが、通常のif文の場合はelse以下がなくても問題ないと思うのですが、
なぜこの場合はだめなのでしょうか?

876 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 15:39:38.87 ID:hLxIIZfE.net]
>>832
それは
> if x not in l else l
じゃなくて
> l if x not in l else l
なの
>>830が言う条件式って奴
式1 if 条件 else 式2
で、条件が真と評価されるなら 式1
条件が偽に評価されるなら 式2
を返す
なので else 式2 がないと困っちゃう
(None を返すという選択肢もあったとは思うけど)

877 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 15:48:08.55 ID:seRmY1tJ.net]
>>833
else lのlをNoneにしてみたら、
TypeError: argument of type 'NoneType' is not iterable
とでてしまいました。
でもなんとなく前よりはこの式がわかったような気がします。
どうもレスありがとうございました。

878 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 17:30:59.29 ID:16GnFLu/.net]
>>832
>>830が条件式(他言語に倣って三項演算子と呼ばれることも)だって教えてくれてるじゃん

値1 if 条件 else 値2
条件が真と評価されたら値1を、偽と評価されたら値2を返す

879 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 18:12:02.74 ID:hLxIIZfE.net]
>>828
そもそもこのラムダ式がちょっとトリッキーなんだよね
lambda l, x: l.append(x) or l if x not in l else l
俺なら
def f(l,x):
__if x not in l:
____l.append(x)
__return l
を定義して
repeating_data = reduce(f, columns['Hello'], [])
ってやると思う



880 名前:デフォルトの名無しさん [2018/11/10(土) 18:14:37.23 ID:GvdPZ72d.net]
>>834
lをNoneにするってのは830の間違い

881 名前:デフォルトの名無しさん mailto:sage [2018/11/10(土) 18:59:26.03 ID:8RKiULCU.net]
>>833
偽の時は空値返す二項版条件演算子みたいな糞を実装してる言語って何?
有効な使い道が思いつかん






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

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

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