19/10/01 18:16:03.81 yGujYsxV0.net
0.0001を2進数に直す
113:デフォルトの名無しさん
19/10/01 18:42:48.99 vlDmDXF7r.net
0.0001は2進数では循環小数になる→表現できる桁数は有限だから誤差が積もってゆく
114:デフォルトの名無しさん
19/10/01 18:43:28.06 FnDrhLoap.net
>>111
>>112の返答がほぼ答えだけど、もう少し親切に説明しようと思う
浮動小数点で0.0001を表すと厳密には0.0001ではなくて小さな誤差を持つので、足し合わせても1にはならない
115:デフォルトの名無しさん
19/10/01 18:51:08.71 edrieGWV0.net
>>114
ありがとう
116:デフォルトの名無しさん
19/10/01 19:15:16.00 9fvqkmcJ0.net
>>111
「割り切れない数」の代表格の1/3は三進数では0.1
πはπ進数では10
117:デフォルトの名無しさん
19/10/01 20:05:23.27 lPnANaUAM.net
>>110
ぼくのかんがえたていあんをりかいできないとかありえない
ってか?
バカじゃねーの?
そんな簡単にブロックスコープの問題が解決されるなら誰も苦労はせんよw
言語設計者をなめすぎ
118:デフォルトの名無しさん
19/10/01 20:21:37.81 edrieGWV0.net
>>116
高校数学をやらなければいけないことは分かった、ありがとう
119:デフォルトの名無しさん
19/10/01 22:46:37.27 5NrAsYQP0.net
>>117
結局煽ってマウント取って気持ちよくなりたいだけなんだね。わかったよ。ありがとう。
120:デフォルトの名無しさん
19/10/02 04:59:18.95 fPPXHhjt0.net
>>119
それお前だろ…
どんだけ悔しがりなんだよw
121:デフォルトの名無しさん
19/10/02 07:42:31.71 YpMEiTCH0.net
二進数の浮動小数点演算では誤差が出る。
誤差を出さないために、Pythonでは fraction (文数) という概念がある。
0.0001 は誤差が出るが、1/10000 なら誤差は出ないという話。
from fractions import Fraction
print(Fraction(1, 10000)*3)
#3/10000
実際のプログラムで誤差を出さない様にするためには、整数演算だけで行う事がよくある。
print(1*3/10000)
#0.0003
x = 0
for i in range(10000):
x += 1
x = x/10000
print(x)
#1.0
122:デフォルトの名無しさん
19/10/02 13:01:18.79 55+aQRnYa.net
>二進数の浮動小数点演算では誤差が出る。
だから違うから初心者に誤解を招く表現はやめろ
十進数でも浮動小数点演算では誤差が出る
原因は二進数じゃない
123:デフォルトの名無しさん
19/10/02 13:27:56.11 vkK/4cs10.net
>>122
from decimal import *
getcontext().prec = 6
print(Decimal('0.0001')*3 , 0.0001*3)
# 0.0003 0.00030000000000000003
124:デフォルトの名無しさん
19/10/02 14:07:38.62 vkK/4cs10.net
decimal --- 十進固定及び浮動小数点数の算術演算
URLリンク(docs.python.org)
decimal モジュールは正確に丸められた十進浮動小数点算術をサポートします。
数値間の等価性を厳しく保たなければならないようなアプリケーションを考えるなら、十進数による数値表現が望ましいということになります。
ハードウェアによる 2 進浮動小数点表現と違い、decimal モジュールでは計算精度をユーザが変更できます(デフォルトでは 28 桁です)。
この桁数はほとんどの問題解決に十分な大きさです:
125:デフォルトの名無しさん
19/10/02 14:15:23.16 BQ6RkETu0.net
三進数で 0.1 - 0.001 = 0.022 で有限小数となるけど十進数で問題解決できるの?
十進数では1/3も1/27も有限小数じゃなくなるけど。
126:デフォルトの名無しさん
19/10/02 15:22:36.64 vkK/4cs10.net
>>125 数字をどう扱うかだろうね。
途中演算は全て分数で計算し結果も分数ならそれで終わりだし、最終的に浮動小数点数で表したければ何桁で丸めるかと言うだけの話だろ。
有理数として扱いたければ分数で最終まで扱うしかない。
from decimal import *
from fractions import Fraction
getcontext().prec = 28
f137 = Fraction(1,3)+Fraction(1,7) # 1/3 + 1/7 -> f137= 10/21
print(f137 , Decimal(float(f137)))
# 10/21 0.47619047619047616404230893749627284705638885498046875
同じことを普通の浮動小数点演算すると
print(13/+1/7)
# 0.47619047619047616
127:デフォルトの名無しさん
19/10/02 15:30:33.78 dOlpIXopF.net
>>124
丸めてるじゃねーかωωω
128:デフォルトの名無しさん
19/10/02 15:32:50.13 dOlpIXopF.net
>>126
二進数でも二進数のまま全て分数で計算すればそれで終わり
129:デフォルトの名無しさん
19/10/02 15:33:03.55 vkK/4cs10.net
>>127 >>126
130:デフォルトの名無しさん
19/10/02 15:47:10.47 gHIFLYdkp.net
>>128 分数で扱うのなら二進数も10進数も無い。
ただ、最終的に浮動小数点数として扱うなら
2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まるが、10進数の場合は自由に決められるから自分の好みの結果が得られる。
131:デフォルトの名無しさん
19/10/02 15:59:41.87 dOlpIXopF.net
なんでそうなる
132:デフォルトの名無しさん
19/10/02 16:10:31.11 gHIFLYdkp.net
なんでそうなるって、decimal が、そう言う仕様で作られてるからに決まってんじゃん。
133:デフォルトの名無しさん
19/10/02 16:14:01.35 dOlpIXopF.net
わざとボケてんのか?
>2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まるが、
なんでそうなる
2進数の浮動小数点数だって自分で自由に決められるだろ
134:デフォルトの名無しさん
19/10/02 16:37:42.79 gHIFLYdkp.net
>>133 ボケてるのどっち?
15. 浮動小数点演算、その問題と制限
URLリンク(docs.python.org)
近年の殆どのコンピュータでは float 型は、分子に最も重大なビットから始めて最初の 53 ビットを使い、分母に 2 の累乗を使った、二進小数を使って近似されます。
1/10 の場合は、二進小数は 3602879701896397 / 2 ** 55 となります。
これは、1/10 に近いですが、厳密に同じ値ではありません。
ハードウェアの浮動小数点演算をサポートしている全ての言語で同じ種類の問題を見つけることができます
Python は 本当に float の正確な値が必要なレアケースに対応するためのツールを提供しています。 float.as_integer_ratio() メソッドは float の値を有理数として表現します:
>>> x = 3.14159
>>> x.as_integer_ratio()
(3537115888337719, 1125899906842624)
>>> x == 3537115888337719 / 1125899906842624
true
fractions モジュールと decimal モジュールを使うとこれらの計算を簡単に行えます
135:デフォルトの名無しさん
19/10/02 17:00:45.15 dOlpIXopF.net
>>134
朝鮮人みたいな絡み方だなお前
136:デフォルトの名無しさん
19/10/02 17:51:41.97 gHIFLYdkp.net
>>135 最後は捨て台詞? 勉強してね。
137:デフォルトの名無しさん
19/10/02 17:55:40.23 wzM2k9fzp.net
ここまでIEEE-754の単語の一つも出ないのは何故なのか
138:デフォルトの名無しさん
19/10/02 18:08:35.75 dOlpIXopF.net
捨て台詞っていうか論点がかみ合わないなと思ってね
139:デフォルトの名無しさん
19/10/02 18:09:09.11 qnjdQ6x30.net
知らないんでしょw
知ってりゃ
「二進数の浮動小数点演算では誤差が出る」
「数値間の等価性を厳しく保たなければならないようなアプリケーションを考えるなら、十進数による数値表現が望ましい」
「2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まるが、10進数の場合は自由に決められるから」
とか出てこない。
140:デフォルトの名無しさん
19/10/02 18:15:52.10 QS7AdVKy0.net
Pythonの話はしないのか
しないなら次スレからタイトル変えて
141:デフォルトの名無しさん
19/10/02 18:21:26.45 4+yUm89/p.net
>>139 ここはPython スレだぞ。 Python の仕様を否定するのならこのスレを見てる意味はない。
全て仕様書に書かれてる言葉そのものなのに何をどう反論したいのかな?
142:デフォルトの名無しさん
19/10/02 18:51:41.09 qnjdQ6x30.net
>>141
IEEE 754よめw
143:デフォルトの名無しさん
19/10/02 19:00:26.82 4+yUm89/p.net
>>142 アホ、IEEE を理解していないな。
144:デフォルトの名無しさん
19/10/02 19:05:33.69 qnjdQ6x30.net
一応説明しとく
「二進数の浮動小数点演算では誤差が出る」
→間違い。一般的に言われる「浮動小数点問題」は
URLリンク(docs.python.org)
に説明がある。雑に言うと、10進数に近似するときに出る誤差を問題にしている。
「数値間の等価性を厳しく保たなければならないようなアプリケーションを考えるなら、十進数による数値表現が望ましい」
→そもそも10進数で表現する必要がないのであれば、等価性を厳しく保つために2進数を採用するのが適切。
「2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まるが、10進数の場合は自由に決められるから」
→これこそIEEE754の制限でしょw高速性を求めないのであれば、2進数だろうが10進数だろうが精度は自由に設定できる。
145:デフォルトの名無しさん
19/10/02 19:43:16.62 QS7AdVKy0.net
IEEEと二進数をNGにしておこうか
146:デフォルトの名無しさん
19/10/02 19:46:16.71 U7L7TEhBM.net
各言語での 0.1 + 0.2 の結果
URLリンク(0.30000000000000004.com)
147:デフォルトの名無しさん
19/10/02 19:55:32.68 328phbLi0.net
仮数部と指数部の話はPythonの話やんけ
148:デフォルトの名無しさん
19/10/02 20:27:29.73 R3JG1dEeM.net
相変わらずクソどうでもいいことで言い争ってるな
>>146のリンク貼れば終わる話だろうが
149:デフォルトの名無しさん
19/10/02 23:40:17.77 8TApxQXN0.net
2進数の浮動小数点数、10進数の浮動小数点数ってものが
それぞれネイティブのIEEE754のfloatとBinary Coded Decimalを指してる立場でものを言ってるのか、
純粋に「2進数」の「浮動小数点」などと捉えてものを言っているのかで違っているような
floatはfloatって言うべきだし、BCDはBCDって言うべきだし、それぞれを2進数、10進数の浮動小数点数って言うのは
正確なものの言い方ではないと思うけどね
150:デフォルトの名無しさん
19/10/03 00:33:06.53 4GYQfqj50.net
>>144 おいおい、ここはPython スレだぞ。 どこの言語の話をしてるんだ。
151:デフォルトの名無しさん
19/10/03 00:39:40.00 4GYQfqj50.net
>>149 Python で話せよ。 くだらん話をすんな。
152:デフォルトの名無しさん
19/10/03 00:52:45.07 8EsWJ49w0.net
俺はくだらないと思わないが、引き際は大事だと思うよ
これ以上掘り下げてもほとんど意味ないしね
153:デフォルトの名無しさん
19/10/03 00:53:02.11 T7eEfky90.net
scipyで数値積分をおこなうときに積分範囲をベクトルで与えて
積分の値もベクトルで返す方法はありますか?
例えば ∫_0^x 2*t dt の積分を積分範囲を 0から x=0,1.5, 3 と3通りにかえて
積分結果をベクトルで [0, 2.25, 9] とかえしてくれるようなプログラムを書きたいです。
import numpy as np
from scipy import integrate
from scipy import stats
y = lambda t: 2*t
x = np.linspace(0,3,3)
inty = integrate.quad(y, np.zeros(3), x)
としても
ValueError: The truth value of an array with more than one element is ambiguous.
Use a.any() or a.all()
とエラーがでます。for文を使わずにうまいこと書く方法を教えてください。
154:デフォルトの名無しさん
19/10/03 01:42:20.97 8EsWJ49w0.net
>>153
残念ながらfloatにnp.arrayを突っ込むような使い方はできない
こういうときは仕方がないので、以下のようにarray_likeな引数を受け取るような関数を作ることになる
URLリンク(ideone.com)
他にうまい方法があるなら俺も知りたい
155:デフォルトの名無しさん
19/10/03 03:22:12.23 3+KdsVIy0.net
>>154
なるほど分かりました
ありがとうございます。
156:デフォルトの名無しさん
19/10/03 06:10:56.73 Eu2t0lrZ0.net
>>151
まあくだらん話だよな
> 2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まる
とアホなこと言ってる奴がボコられてるだけだしw
157:デフォルトの名無しさん
19/10/03 06:32:35.92 4qlP7y1B0.net
今の主流のコンピュータでは2進数に対応する電圧の状態を利用して計算している
ソフトウェアでそれをどう上手く使って計算するか
IEEEの浮動小数点数の形式で扱うと誤差が出ることがある
Pythonのライブラリで色んな工夫をしている
自分で課題を解決できるライブラリを開発して貢献する事も可能だろう
現在のコンピュータで計算するには
10進数→2進数→10進数
の変換があるからこの過程で
必要な精度を保てるように工夫が必要だろう
158:デフォルトの名無しさん
19/10/03 06:37:12.39 /3F4mXI80.net
木曜日だから今NGすれば一週間消せる
159:デフォルトの名無しさん
19/10/03 08:36:04.46 4GYQfqj50.net
>>156
Pythonの浮動小数点数float型の範囲(最大値・最小値)
URLリンク(note.nkmk.me)
Pythonの浮動小数点数float型は64ビットの浮動小数点数表現である倍精度浮動小数点数で、Cなどほかのプログラミング言語におけるdoubleに相当する。
160:デフォルトの名無しさん
19/10/03 11:45:59.34 z1c5xmGqM.net
で?
整数演算機能しか持たない8bit CPUでも多倍長の浮動小数点演算をすることもできる
当然今君が使ってる目の前のPythonでも多倍長の浮動小数点演算ができる
君にできるかどうかは知らんけどねw
なので
> 2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まる
と言うのは真っ赤な嘘
161:デフォルトの名無しさん
19/10/03 12:14:43.08 4GYQfqj50.net
>>160 負け惜しみはやめろ。そりゃなんだってゴリゴリやればなんでも出来る。
ここで話してるのはPython の仕様の話だ。
float は、倍精度しか無いと仕様書に書かれている。
それが全てだ。 仮数部53ビット。
これは一般的な64ビット浮動小数点演算機の物理的な制限からきているのは明らか。
162:デフォルトの名無しさん
19/10/03 12:35:57.29 YSTER/9m0.net
ctypes.c_longdouble()
163:デフォルトの名無しさん
19/10/03 12:36:57.80 2k415C0d0.net
まだ言ってんのか^^;
> 一般的な64ビット浮動小数点演算機の物理的な制限からきているのは明らか。
違うぞ。どっちもIEEEによって縛られてるだけ。
164:デフォルトの名無しさん
19/10/03 12:55:46.18 z1c5xmGqM.net
>>161
負け惜しみ?
Pythonの話?
馬鹿にされてるのは2進数と10進数の話だぞw
> ただ、最終的に浮動小数点数として扱うなら
> 2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まるが、10進数の場合は自由に決められるから自分の好みの結果が得られる。
165:デフォルトの名無しさん
19/10/03 19:19:02.85 9IWXvZRK0.net
ラムダ式のリストを作りたいのですが、
def func(n):
return lambda n: print(n)
list = [func(n) for n in range(10) ]
list[0]
list[1]
list[2]
は狙い通りに
0
1
2
という結果が出るのに
list = [lambda n: print(n) for n in range(10)]
list[0]
list[1]
list[2]
だと
9
9
9
になってしまうのはなぜですか?
166:デフォルトの名無しさん
19/10/03 19:59:14.72 W+JElR6/M.net
ならないと思うけど
後者のラムダ式は評価されてないから
<function <listcomp>.<lambda> at 0x2b850b976ea0>
とか出るだろ
サンプルは正確に頼む
167:165
19/10/03 20:19:26.33 nXwJdy3O0.net
すみません
def func(n):
return lambda : print(n)
list = [func(n) for n in range(10) ]
list[0]()
list[1]()
list[2]()
と
list = [lambda : print(n) for n in range(10)]
list[0]()
list[1]()
list[2]()
でした
ID変わってるかもしれないけど165です
168:デフォルトの名無しさん
19/10/03 20:31:44.96 0JhZY07I0.net
list = [lambda x=n : print(x) for n in range(10)]
169:165
19/10/03 20:33:42.58 nXwJdy3O0.net
>>168
どうしてそうなるのかわかりませんが、うまくいきました
ありがとうございます
170:デフォルトの名無しさん
19/10/03 22:34:54.68 MIbrEnWV0.net
Pythonでファイルの一括処理を行うと
他の言語やシェルの結果と比較してエラーが多い気がしますが、(特にテキスト処理)
気のせいでしょうか?
171:デフォルトの名無しさん
19/10/03 23:13:50.33 twcV991sM.net
僕が論理的に原因分析できないのはここのスレ住民のせいだと思います。気のせいでしょうか?
172:デフォルトの名無しさん
19/10/03 23:55:55.59 4GYQfqj50.net
>>171 気の所為です。 被害妄想とも言います。
ひたすら練習あるのみ。
173:デフォルトの名無しさん
19/10/04 02:06:06.17 kLahYNxr0.net
>>170
エラーではないけど、この関数は将来廃止予定です、みたいな警告はよく見る
174:デフォルトの名無しさん
19/10/04 16:24:44.36 JXWhYfPM0.net
def func(n):
return lambda n: print(n)
list = [func(n) for n in range(10) ]
これと
list = [lambda n: print(n) for n in range(10)]
これは等価ではない
前者と等価になるのは
list = [(lambda n: print(n))(n) for n in range(10)]
175:デフォルトの名無しさん
19/10/04 16:56:37.71 6EiJ+2U20.net
>>174
ならないんだけど
176:デフォルトの名無しさん
19/10/04 17:07:14.16 FW+Y/3wmF.net
ああ
ならんね
それから
>>165
も狙い通りになってないなω
177:デフォルトの名無しさん
19/10/04 17:28:13.79 6EiJ+2U20.net
>>167と>>168で解決してるけど
>>169
python 変数のスコープ クロージャ 変数の束縛
あたりでググったらわかると思うよ
178:デフォルトの名無しさん
19/10/05 00:12:25.64 JlWvx+CH0.net
コンパイラにコード食べさせるのは「コンパイルする」ですけど、インタプリタにコード食べさせるのは何て言うんでしょうか?
「インタプリタする」ですか?
179:デフォルトの名無しさん
19/10/05 03:32:00.51 3zp7gEabM.net
今時のインタプリタはバイトコードへのコンパイルと実行がセットなので
コンパイルではないとされるとすげえ違和感がある
180:デフォルトの名無しさん
19/10/05 07:15:18.06 2xd3HXJk0.net
インタプリタがプログラムを解釈interpretするときにはいろんなことを行う
その総体をさしていうなら実行するexecute、走らせるrunだけど、何らの副作用を伴わないなら評価evaluateするという言い方もありだろう
しかし死刑執行人をexecutionerと婉曲にいうように、インタプリタによるinterpretが特別な帰結をもたらす状況もあるかもしれない
昨夜エジョフがスターリンの言葉を解釈した、といわれれば恐ろしい何かが行われたことを想像するであろう
181:デフォルトの名無しさん
19/10/05 09:34:05.96 oVPf95FK0.net
interpretは子音で終わってるから正確にはインタープリッする
182:デフォルトの名無しさん
19/10/05 10:30:34.58 SKPk8UHd0.net
>>178 実行するだろうな。
183:デフォルトの名無しさん
19/10/05 10:43:06.70 RY9rLLlz0.net
>>178
run
はしらせる
184:デフォルトの名無しさん
19/10/05 11:44:35.13 xk/GxZ7j0.net
>>178
コンパイル くわせる
リンク しばる
実行 はしらせる
185:デフォルトの名無しさん
19/10/05 15:18:28.45 0WeqN8Y0M.net
生ける忠達 死せる孔明をはしらす
だっけ?
186:デフォルトの名無しさん
19/10/05 15:21:10.15 RY9rLLlz0.net
>>185
うるおぼえだなwww
187:デフォルトの名無しさん
19/10/05 16:32:56.72 yQxHyjqi0.net
>>185
ゾンビかよ
188:178
19/10/06 11:10:37.65 kRqXlweR0.net
走らせる、実行するですか
なるほどm(_ _)m
189:デフォルトの名無しさん
19/10/06 11:21:21.15 GF2THHlm0.net
このプログラムが起動するのは一度きりである。実行ののち、消去される。
非実行が選択された場合は起動せずに消去される。
Ready?
190:デフォルトの名無しさん
19/10/06 14:54:40.23 VRfDnOhz0.net
非実行なら消去も実行されないじゃんバカなの?w
191:デフォルトの名無しさん
19/10/06 15:23:13.43 qpx1VOF30.net
スパイ大作戦のネタのつもりだろ
192:デフォルトの名無しさん
19/10/06 15:23:41.08 /HJX1kUSa.net
ハルヒの消失だっけ?
193:デフォルトの名無しさん
19/10/06 17:41:30.75 pvG0vkV+F.net
そもそもメッセージ出してるのは誰よ
実行してんじゃん
194:デフォルトの名無しさん
19/10/06 18:24:32.40 P4FibN0lM.net
おOSがメタデータを読み取って画面表示してるんですよ
ぜ全然破綻してないですよ
195:デフォルトの名無しさん
19/10/06 19:13:30.23 GF2THHlm0.net
URLリンク(i.imgur.com)
196:デフォルトの名無しさん
19/10/06 19:22:02.88 qpx1VOF30.net
>>192 >>195
ホホゥ( ゚д゚)
スパイ大作戦との中間に、そういえば、
モンタナ・ジョーンズもあったな
諸事情でDVDとかでないのが悲しい・・・
197:デフォルトの名無しさん
19/10/06 19:58:52.81 nHvdH+7w0.net
非実行が選択された場合はおまいらのPCが等幅フォント、半角カタカナになる。
Ready?
198:デフォルトの名無しさん
19/10/06 20:02:06.85 qpx1VOF30.net
>>197
PC(機械)がフォント(データ)に化けるとはまた面妖な!
199:デフォルトの名無しさん
19/10/06 20:07:23.59 GF2THHlm0.net
昔の16ビットPCに変わるなら、ありかもw
200:デフォルトの名無しさん
19/10/07 09:25:23.00 i5RoY7ITM.net
polish pillarとかの時代
201:デフォルトの名無しさん
19/10/07 09:41:56.19 SdznGAt+0.net
Ready? と言われると V-MAX発動!と返したくなる
あれ、発動宣言してからReadyだったっけ?
202:デフォルトの名無しさん
19/10/07 12:01:35.88 Lz0AbqdP0.net
VMAX発動!
「Ready!」
203:デフォルトの名無しさん
19/10/07 12:36:46.60 UkX/bq2a0.net
蒼き流星
204:デフォルトの名無しさん
19/10/07 19:06:00.76 1o1RFUhAM.net
ラズパイに繋いだ圧電ブザーで
周波数で音の高さが変わるのは分かりましたが
音の音色を変えるにはどう制御すればいいですか?
具体的には音色をピアノ風にしたいです。
205:デフォルトの名無しさん
19/10/07 20:58:09.87 QGOUHRCn0.net
スピーカーをつないでピアノの音を鳴らすか
鍵盤を用意して物理的に叩くギミックを用意する
206:デフォルトの名無しさん
19/10/07 21:12:02.49 yg0UiPau0.net
>>204
ピアノ音の波形を周波数成分に分解したものを準備して重畳する
圧電ブザーの数と音の大きさの制御がキーポイント
207:デフォルトの名無しさん
19/10/08 13:55:30.56 fIh6S9d10.net
プログラミング言語人気トップ8、過去15年間で安定 - 例外はPython
2019/10/07 14:16 後藤大地
URLリンク(news.mynavi.jp)
TIOBE Softwareから、2019年10月のTIOBE Programming Community Index (PCI)が公開された。
TIOBE PCIは、複数の検索エンジンの検索結果から、対象となるプログラミング言語がどれだけ話題に
なっているかをインデックス化したもの。(中略)
TIOBE Softwareは発表の中で、毎年新たなプログラミング言語が登場しているものの、TIOBE
Programming Community Indexのトップ8は過去15年間でほとんど変化していないと説明した。
Perlが消えてPythonに入れ替わったことや、Objective-Cが消えてSwiftに替わったというのが大きな
例外で、それ以外に大きな変動はないと指摘している。
ただし、プログラミング言語の分野に関してはいくつかの傾向があるとして、その例としてPHPやPerlから
Pythonへ移っていること、新しいプログラミング言語としてDart、Scala、Lua、Rust、Kotlin、TypeScript
などが人気上昇の渦中にあることなどを説明している。
10月TIOBE Programming Community Index / 円グラフ
URLリンク(news.mynavi.jp)
208:デフォルトの名無しさん
19/10/08 13:59:03.18 YDJb962sF.net
>人気上昇の渦中
終わってるのあるやん
209:デフォルトの名無しさん
19/10/08 14:11:07.35 J68M6wrj0.net
ちおべは説得力ない
210:デフォルトの名無しさん
19/10/08 20:51:01.81 oYvZ36SI0.net
Rubyは24.6%もあるじゃん
211:デフォルトの名無しさん
19/10/08 20:56:57.87 eKdwgre+0.net
Pythonが最強なのは知ってるからわざわざ貼らなくてよい
212:デフォルトの名無しさん
19/10/10 23:57:06.99 wQAIptsN0.net
PyPy、JSONパーサを大幅高速化 - CPythonとNodeより高速 2019/10/10 09:47 後藤大地
URLリンク(news.mynavi.jp)
高速なPythonの実装系を開発しているPyPyチームは2019年10月8日(米国時間)、「PyPy Status
Blog: PyPy's new JSON parser」において、ここ1、2年で取り組んできたJSONパーサの高速化の取り
組みについて発表した。
JSONデータは特に扱いが増えているデータ形式。さまざまなプログラミング言語が基本的なデータ
形式として扱っており、設定ファイルのような使い方から大規模データ保持の方法としてまで幅広く
使われている。
PyPyチームはいくつかの手法を試して高速化に取り組んだ。結果、処理速度は、CPythonおよびNodeの
双方よりも高速化することに成功したとしている。この新しいパーサは次のリリースバージョンとなるPyPy
7.2に同梱が予定されている。
ただし、PyPyチームはこの新しい実装にはいくつかの課題があると説明。課題とは、高速なJSONパーサと
して知られているRapidJSONほどは高速化を実現できなかったこと、仕組み上採用した仕掛けがPyPyの
世代別ガベージコレクタとの相性が最悪であること、メモリ使用量に関してはNode/V8のほうに分がある
ことなどだ。PyPyチームは、今後さらに多くのベンチマークを実施する必要があるだろうと説明している。
Pythonは現在人気があるプログラミング言語の1つで、デフォルトの処理系以外にもいくつかの実装系が
存在しており、処理速度の高速化に力を入れたている。
213:デフォルトの名無しさん
19/10/11 10:41:11.87 hkXt1GtmF.net
msgpackの勝利
214:デフォルトの名無しさん
19/10/15 23:44:28.20 LXkkA+L30.net
CでコンパイルするCython は評判が良く無いけど、Dropbox が開発してる Mypyc は、評判が良さそうだね。
URLリンク(news.ycombinator.com)
URLリンク(blogs.dropbox.com)
215:デフォルトの名無しさん
19/10/16 08:29:54.15 n3310tdeM.net
Pythonってどんな用途向けの言語んでしょうか?
216:デフォルトの名無しさん
19/10/16 09:12:05.86 Mi1dGaVf0.net
>>215 統計処理、科学技術関係、AI 等。
スクリプト言語はパラメータをこまめに変えて結果を見ると言う用途には適している。
沢山のライプラリが揃ってるから、今や理系の標準ツールになりつつある。
Excel との相性も抜群だから事務処理用としてもよく使われる。
217:デフォルトの名無しさん
19/10/16 12:13:08.45 FpMoQEu50.net
>>215
216も言うように業務支援スクリプトだな
pythonしかできない業務支援スクリプト専門のプログラマーもいるそうだ
218:デフォルトの名無しさん (ワイーワ2 FFdf-1wBF)
19/10/16 12:28:14 dmmazo8PF.net
ネイティブコードにコンパイルって
for x in range(hoge): みたいなのでも
レジスタ使ってループとかしてくれるのかな
219:デフォルトの名無しさん
19/10/16 17:42:09.39 1Hum/8RQ0.net
「Python 3.8」リリース、新たに代入式を導入 2019年10月16日16:00 末岡洋子
URLリンク(mag.osdn.jp)
プログラミング言語Python開発チームは10月14日、「Python 3.8」を公開した。
Python 3.8は2008年末に公開されたバージョン3系の最新版で、2018年6月の3.7公開以来の
メジャーリリースとなる。
変数に値を代入するための新たな「:=」演算子(「セイウチ演算子」)が導入された。従来のPythonに
おいて変数への代入は値を返さない文であり、代入結果を参照するような式は文法エラーとなっていた。
今回導入された「:=」演算子では代入された値を返し、それを参照する式を記述できるようになる。また、
関数に引数を与える際にキーワード呼び出しの順序を指定する文法が加わった。
CPython向けの高速な呼び出しプロトコル「Vectorcall」も加わった。CPythonが用いるfastcallを
ベースとし、任意のユーザー定義クラスで用いることができるという。
コンパイルされたバイトコードを格納するディレクトリを変更するためのPYTHONPYCACHEPREFIXも
新たに導入された。これによって、Pythonコードが格納されたディレクトリやファイルシステムとは異なる
ディレクトリ/ファイルシステム上にバイトコードキャッシュを作成できる。
このほか、Python 3.6で導入されたf文字列の機能強化、Pickleプロトコル5の導入などさまざまな
強化が加わっている。
220:デフォルトの名無しさん
19/10/17 02:13:23.52 BHqopZt30.net
>>219
セイウチってなんだと思ったけど、
コロンが目で、イコールが牙なんだな
221:
19/10/17 06:54:57 ytwdVAJ4M.net
>>219
> 変数に値を代入するための新たな「:=」演算子(「セイウチ演算子」)が導入された。
これ、C言語とかと同じように単に代入文が値を持つ式とするんじゃ駄目なんだっけ?
222:
19/10/17 08:11:04 WWwnadc0a.net
コストと互換性の問題じゃない?
223:デフォルトの名無しさん
19/10/17 08:29:08.91 DIhvGxCIM.net
派遣更新止めて時間できたらPythonの勉強してみようかな…
講習会とかってあるのでしょうか?
ハロワのでVBAとかPythonとかの講座あればいいのに…
224:
19/10/17 10:02:40 OIw2LILw0.net
>>221 今まで通り代入文は値を持たず、代入式は値を持つと言う使い分けをしたい為。
代入文に値を持たせないのは間違いを少なくするためだから残しておきたい。
225:
19/10/17 12:21:55 l2BIV5MrM.net
>>224
ああなるほど、C言語でも
if(a == b)
を
if(a = b)
って書き間違えるとかあったから一理あるな
226:
19/10/17 15:09:28 1mHvnb1C0.net
最近のまともなIDE使ってればエディタ上で警告出るからそんな間違いしないけどな
227:
19/10/18 00:46:19 207+8MaLa.net
>>220
walrus operator (:=)
URLリンク(www.theregister.co.uk)
URLリンク(translate.google.com)
228:デフォルトの名無しさん
19/10/18 08:58:17.89 Z0V6+Dq20.net
assignment expression は、代入式 が訳になるね
今までのは、assignment statement 代入文
229:デフォルトの名無しさん
19/10/18 10:10:04.33 2g/GJrKd0.net
そろそろ翻訳するなんて非効率なことは止めればいいのに
230:デフォルトの名無しさん (ワッチョイ d205-jF/Y)
19/10/18 10:51:13 jiatlS6W0.net
Python入門者です。
文字列の操作で、
<AAAAA>BBBBB
最初の<から 次の> までのテキストを削除して
BBBBB
のみにするにはどうすれば良いですか?
RSS取得をしてみようかと思って、不要部分を取り除く際につまづきました。
よろしくお願いします。
231:
19/10/18 10:52:56 5559SrY60.net
>>229
コーダーにいちいち英語能力まで要求したら人を確保できん
232:デフォルトの名無しさん
19/10/18 10:59:43.91 CwxwlRTqM.net
AAAAAの判断をどうしたい?
文字数?
それとも”AAAAA”っていう文字列?
233:デフォルトの名無しさん
19/10/18 11:00:41.78 2g/GJrKd0.net
これだろ
正規表現サンプル(HTMLタグを削除する(記号で囲まれた文字の削除))
URLリンク(hodade.com)
234:デフォルトの名無しさん
19/10/18 11:03:34.10 jiatlS6W0.net
文字列です。
取得したRSSのテキストに
<img src="URLリンク(........) /> 本文
となっており、< > 部分を削除したいです。
よろしくお願いします。
235:デフォルトの名無しさん
19/10/18 11:13:03.03 jiatlS6W0.net
URLリンク(japanese.engadget.com)
上記RSSをfeedparserで取得して
descriptionの余計な部分を削除するといった内容です。
236:デフォルトの名無しさん (ワッチョイ d205-jF/Y)
19/10/18 11:54:08 jiatlS6W0.net
自己解決しました。
正規表現 <.*?> でした。
237:
19/10/18 12:57:02 Z0V6+Dq20.net
>>235 色々やることになるだろうから HTMLParser を使った方が良さそうに思う。
238:
19/10/18 13:07:22 Z0V6+Dq20.net
こんな感じ
URLリンク(ideone.com)
239:デフォルトの名無しさん
19/10/18 13:59:49.82 e+8RgQyma.net
おそらく Beautiful Soup を使うのが近道だと思う
ちょっと使いにくい点もあるが
240:デフォルトの名無しさん
19/10/18 18:14:42.97 jiatlS6W0.net
いろいろアドバイスいただきありがとうございます。
beautiful soap
と
urllib2+HTMLParser
どっちがおすすめでしょうか?
241:デフォルトの名無しさん
19/10/18 18:43:56.12 6zLZDVSS0.net
>>240
>urllib2+HTMLParser
に一票。
ところで
soapじゃないぞw
242:デフォルトの名無しさん
19/10/18 19:13:54.88 WIdaZ9Ub0.net
とびきりの美しい嬢たちが世の殿方をお待ちしております
243:デフォルトの名無しさん
19/10/18 20:01:49.75 L2N4rS5+M.net
>>242
このスレにふさわしくないな
ちょっと詳しく話を聞かせてもらおうじゃないか
244:デフォルトの名無しさん
19/10/18 21:53:52.53 k3j5/4LT0.net
システム
スタンダード60分 諭吉2人
三輪車スペシャル30分 諭吉5人
他各種コース有
おごと温泉駅からお電話ください。お迎えに上がります。
大人の浴場 ビューティフル・ソープ
245:デフォルトの名無しさん
19/10/19 10:26:52.81 deKWZ/TF0.net
>>214 mypyc のReadme を見ると
mypyc: Mypy to Python C Extension Compiler
THIS PROJECT HAS BEEN MERGED INTO mypy ITSELF.
と書かれてあって、mypy の機能にコンパイラが取り込まれたようなんだが、mypy の何処を見てもコンパイルの指定がない。
どうやってコンパイルするんだろう?
246:デフォルトの名無しさん
19/10/19 10:38:33.40 deKWZ/TF0.net
>>245 mypy のブランチとして開発が進められてるようだけど、まだまだリリースの段階にはないみたいだな。
247:デフォルトの名無しさん
19/10/19 14:15:33.83 EetdzGiu0.net
jupyter で最後の行に変数xを書いておいてその内容が表示される(例1)のと
print(x)でその内容が表示される(例2)のでは改行などが異なります。
printを使わない場合の表示を最後以外の途中の呼び出したいんですが可能でしょうか?
例は実際に確認した表示そのままではありません。
# 例1
x
[None,
(1,2),
(2,3),
(3,4)]
# 例2
print(x)
[None, (1,2), (2,3), (3,4)]
248:デフォルトの名無しさん
19/10/19 14:22:25.96 tUw9vx0/0.net
>>247
printじゃなくpprintをつかえ
249:デフォルトの名無しさん
19/10/19 14:36:03.27 EetdzGiu0.net
>>248
できました。ありがとうございます。
250:デフォルトの名無しさん
19/10/19 14:36:06.35 Gnc7X+FDp.net
print を使わない場合に、print の結果と同じ様に改行無しで見れないかと言う質問?
variable inspector は?
251:デフォルトの名無しさん
19/10/19 14:45:45.86 EetdzGiu0.net
>>250
ありがとうございます。逆です。
252:デフォルトの名無しさん
19/10/19 15:15:53.05 g7gJ/kc1F.net
%latex
display(Math(x))
253:デフォルトの名無しさん
19/10/20 18:44:08.64 kPAikNy+a.net
threading.EventってJSの
promiseみたいなものなのか?
254:デフォルトの名無しさん
19/10/20 20:02:22.82 K+pWsxfLM.net
違う
javascriptでEventに相当するものはない
Eventは複数のスレッドが待ち合わせるための機能だ
複数のスレッドをプログラマが明示的に扱わない言語には必要ない
pythonでPromiseに類する機能を実装しているのはTaskとかFutureとか
ただpythonはjavascriptではなくjavaとc#を参考にマルチスレッディングライブラリを実装しているので
javascriptのインターフェースには似ていない
255:デフォルトの名無しさん
19/10/21 03:15:55.81 xMJWu552a.net
そうですか同じものはないですか
futureってconcurrent.futures のことですかね
task はどのライブラリでしょうか
256:デフォルトの名無しさん (ワッチョイ 1610-4dmd)
19/10/21 09:54:03 LkDkCGmw0.net
>>254
pythonのEventはsemaphoreみたいなもの
非同期処理を実現するためのコールバックの仕組みとは違う
という事?
結果が確定するまで待ち合わせるときは処理を止めてしまう?
CPUは他の処理に明け渡す?
257:デフォルトの名無しさん (ワイーワ2 FF6a-uHRg)
19/10/21 12:53:37 c9dhXgWBF.net
何のためのスレッドよ
258:デフォルトの名無しさん (ブーイモ MM0e-YsJc)
19/10/21 17:35:08 p3hDTVkDM.net
ループが入れ子になるとうっかりイテレータ変数を上書きして、バグ入れちゃうことがある
特にリスト内包表記でやっちゃうとなかなか間違いに気づかない
コーディングスタイル変えて、こういううっかり避けられたりしないかな
259:デフォルトの名無しさん (ワッチョイ 8f2d-kwV+)
19/10/24 06:08:29 kM9IqWxq0.net
チェックボタン1、チェックボタン2、チェックボタン3、チェックボタン4があります。
チェックボタン1にチェックが入っている場合はA、
チェックボタン2にチェックが入っている場合はB、
チェックボタン3にチェックが入っている場合はC、
チェックボタン4にチェックが入っている場合はD、
チェックボタン1と2にチェックが入っている場合はAB、
1と2と3にチェックが入っている場合はABCというように表示させたいのですが
この場合のif分の書き方がわかりません。
全パターンを書く必要があるのでしょうか?
260:デフォルトの名無しさん
19/10/24 06:31:35.12 lWUOvdIHM.net
その条件を見るだけならif文4回通して表示文字列に加算していく等いろいろ実装は可能そうだけど
今後の保守を考えるとその手法を取るかは慎重に考えて(質問文だけでは判断不可)
261:デフォルトの名無しさん
19/10/24 07:28:52.72 dBQJz/zb0.net
pythonの仕事してみたいと思っているのだけど、実際の業務でよく使われる
ライブラリって何があるでしょう?もちろん業務次第っていうのはわかっているので、
「過去にこれはたくさん使った」というものがあれば教えて欲しいです。
numpyは機械学習案件なら凄く使うけど、自動化案件とかなら必要ない
イメージあるけれど、一通りの処理は精通しておくべきですかね?
あと「知名度は高いけど業務では全然使わない」とか。
tkinterとかその類ではないかと思ってます。
262:デフォルトの名無しさん
19/10/24 07:41:12.74 lWUOvdIHM.net
MLというかDLやってた時はtfとかkerasはまあよく使ったよねそりゃ
あと学習データとして画像扱うならopencv(これはc++でやる場合も多そうだけど)
まあマジで業務次第すぎて参考にならないやろこれ
でもnumpyは何するにしても必須級なのは間違いないと思う、forループとか書くとすぐ重くなるし
自動化ってどんなの想定してるか知らないけど役立つ場面はあるはず
あとosとかその辺を一通り覚えとくと実際にやるとき楽になるはず
263:デフォルトの名無しさん
19/10/24 08:09:49.62 86KFGKV60.net
>>259
雰囲気だけ
a=(c1,c2,c3,c4)
b=("A","B","C","D")
c=""
for i in range(4):
if a[i]:c=c+b[i]
print c
264:デフォルトの名無しさん
19/10/24 09:00:48.06 J/YZWTCoa.net
>>259
#c1-c4はTrueかFalse
import numpy as np
check=[c1,c2,c3,c4]
check=np.array(check)
s=np.array(list(‘ABCD’))[check]
265:デフォルトの名無しさん
19/10/24 09:56:58.83 XMGgvhKa0.net
Pythonの講習とかってやってるとこないのかな?
266:デフォルトの名無しさん
19/10/24 10:11:05.17 aLqmTGcB0.net
講習って何だよ
267:デフォルトの名無しさん
19/10/24 10:23:23.29 j8lJvW2N0.net
Pythonは書籍も溢れているのにいちいち人に説明させるのは
ジジイ化の第一歩だぞw
268:デフォルトの名無しさん
19/10/24 15:49:38.89 vCPJ9PmJM.net
基本構文とか説明してくれるのかな?
動画とかたくさんあるやろ…
269:デフォルトの名無しさん
19/10/24 16:59:33.48 n545jbBX0.net
>>261
仕事プロジェクトフォルダのPipfileを全部見て集計してみたけど、
jupyter 17
pandas 7
sortedcontainers 5
requests 5
matlpotlib 4
django 3
sympy, python-dateutil, pyproj, pillow, piexif, numpy, jinja2, ipyleaflet, cython 2
みたいな感じだったな。依存関係で入ってるやつは含めないから、明示的にpipenvで入れたやつってことになるけど
Pythonのコードを実際にリリースするのは大体Djangoで、あとはデータ処理案件だったり、
REST APIの挙動の調査だったりをするからjupyter、matplotlib、requestsあたりが多くなるな。
データが1万件、カラムが10個ぐらいのデータだったらnumpy使わなくても大体いけるし、何するにしても必須ってこともなくないかな
標準ライブラリだったら、datetime, bisect, itertools, functools, pathlib, os, glob, shutil, pickle, subprocess, jsonあたりはかなり使ってるかな。
270:デフォルトの名無しさん
19/10/24 17:23:38.69 myfSxx3G0.net
業務w
271:デフォルトの名無しさん
19/10/24 17:54:14.23 DTpiAYfHM.net
業務がエブリデイ
272:デフォルトの名無しさん
19/10/24 19:41:47.91 LF/tvMrc0.net
numpyのファンシーインデックスを試しているのですが、以下を試すとa[0]には3が入っていました。
この動作はきちんと規定されたものでしょうか?
それとも1か3かは不定だったりしますか?
a = np.zeros(3)
a[[0,1,0]] = [1,2,3]
print(a)
273:デフォルトの名無しさん
19/10/24 20:02:23.24 m57JSwXI0.net
これでためして5が入っていれば既定と見做す
a = np.zeros(5)
a[[0,1,0,0,0]] = [1,2,3,4,5]
print(a)
274:デフォルトの名無しさん
19/10/24 20:10:18.75 LF/tvMrc0.net
Pythonもnumpyも詳しくないのですが処理系に依存するようなことないんですかね
275:デフォルトの名無しさん
19/10/24 20:26:14.14 aF1ja/WU0.net
>>274
配列弄りは
辞書型とか
0.1+0.2の計算とは
異なる
276:デフォルトの名無しさん
19/10/24 23:18:42.55 dBQJz/zb0.net
>>262
なるほど、やっぱり業務次第だよね
言語的に何でもできるせいで、どんな需要があるかが読み切れない。
機械学習系が一番ホットなんだろうなぁとは思ってるけど、
それ以外ってどんなのがあるんだろう?
numpy触ってて無駄じゃなくて良かった。
osは参考になりました、ありがとう。触っておく
>>269
とても参考になります。思ったより知らないのが少なくてホッとした。
初心者だけど名前見て「あぁ、あれか」くらいはイメージついた。
Djangoがそんな活躍してたのはちょっと意外。趣味枠と思ってた。
挙げてもらった名前はいったん全部触ってみる。
やはり実際にやっている人の話は非常に有益。どうもありがとう
277:aaa (ワッチョイ 8f2d-kwV+)
19/10/25 02:10:09 voN2RuQh0.net
処理の中で作った文字を、定数として使う方法が知りたいです。
例えば
tanaka = [1, 2, 3]
satoh = [4, 5, 6]
suzuki = [7, 8, 9]
みたいリストがあったとして
処理の中で、このtanakaとかsatohとかsuzukiというものが文字列として
作成され、list_nameという変数に格納されるので、それを使って
print(random.choice(list_name))
みたいなことをしたいのですが、こうすると、list_nameに入っているのがtanakaなら
その文字の中からランダムに選ばれてしまい、本来やりたいことができません。
tanakaの場合なら1,2,3の中からランダムに選ばせたいです。
278:デフォルトの名無しさん
19/10/25 02:58:48.27 FLPxIKHC0.net
>>277
Dictionaryを使う
{ 'tanaka': [1,2,3], 'satoh': [4,5,6], 'suzuki': [7,8,9] }
279:デフォルトの名無しさん (ワッチョイ 8f2d-kwV+)
19/10/25 04:52:22 9PtrKj3E0.net
yokokara
280:デフォルトの名無しさん (ワッチョイ 8f2d-kwV+)
19/10/25 05:03:04 9PtrKj3E0.net
横からすみません。
277さんと近い状況だったので、失礼します。
私も悩んでいることがありまして
a = "string.ascii_lowercase"
a += " + string.ascii_uppercase"
a += " + string.digits"
for i in range(8):
s += random.choice(a)
とする
「string.ascii_lowercase + string.ascii_uppercase + string.digits」
この文字そのものからランダムに選択されるのですが
これを
s += random.choice(string.ascii_lowercase + string.ascii_uppercase + string.digits)と
同じように動作させるにはどのようにすればよいのでしょうか。
278さんのアドバイスから、私もDictionaryで
a[1] = "string.ascii_lowercase"
a[1] += " + string.ascii_uppercase"
a[1] += " + string.digits"
for i in range(8):
s += random.choice(a[1])
と、やってみたのですが
同じ結果となってしまいました。
281:デフォルトの名無しさん
19/10/25 06:54:21.66 xj06uauP0.net
>>280
eval使う。
a[1] = "string.ascii_lowercase"
a[1] += " + string.ascii_uppercase"
a[1] += " + string.digits"
for i in range(8):
s += random.choice(eval(a[1]))
282:デフォルトの名無しさん
19/10/25 08:34:42.80 hGluSLXpM.net
>>281
相手するなよ…
> 277 aaa (ワッチョイ 8f2d-kwV+) aaaa@aaa.com 2019/10/25(金) 02:10:09.67 ID:voN2RuQh0
> 280 デフォルトの名無しさん (ワッチョイ 8f2d-kwV+) 2019/10/25(金) 05:03:04.96 ID:9PtrKj3E0
> 横からすみません。
> 277さんと近い状況だったので、失礼します。
ワッチョイも知らん基地外だぞ
283:デフォルトの名無しさん
19/10/25 09:58:40.06 Mm36/kGUM.net
近い状態だったので失礼します(笑)(自作自演)
284:デフォルトの名無しさん
19/10/25 18:39:32.96 JwD5kwT2a.net
yokokara(ID変わってるなヨシ)
ってことだったら可哀想だな
285:デフォルトの名無しさん
19/10/25 19:14:32.10 VsSzNoKk0.net
>>284
やめたれw
286:デフォルトの名無しさん
19/10/25 19:15:49.04 GfHpXzuNM.net
>>274
ドキュメントにどうなるか書かれてないならそういう書き方はしない方がいい
287:デフォルトの名無しさん
19/10/25 22:26:27.89 YSt9ZHXn0.net
ワッチョイ晒しage wwwwww
288:デフォルトの名無しさん
19/10/25 22:53:24.30 0AwF1WRA0.net
>>286
まあそうなりますよね
最初見つからなくて質問したんですけど、また探してたら下のページのDetailed notesの2つ目が見つかりました。
英語ダメダメなのでアレなんですが今回質問したようなケースが不定であると捉えて良いんですかね
URLリンク(numpy.org)
289:デフォルトの名無しさん
19/10/25 23:29:56.97 Pxjdzyta0.net
>>288
保証はないって書いてあるね
仮に今結果がいつも同じだとしても、将来のバージョンで順番が変わったりすることがあるってことだろうし、使わない方がいいだろうね
290:デフォルトの名無しさん
19/10/26 00:32:15.18 J54zOHfp0.net
>>289
ありがとうございます
応用したらuniqueが不要になる例があるかと思ったんですがなかなか上手い話はないですね
291:デフォルトの名無しさん
19/10/26 14:38:26.76 y7jerKdM0.net
ワッチョイ 8f2d-kwV+
横からすみませんw