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


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

Pythonのお勉強 Part51



1 名前:デフォルトの名無しさん [2015/10/01(木) 20:48:23.20 ID:zy2bldTw.net]
Pythonオフィシャルサイト
www.python.org/

日本Pythonユーザ会 (※英語わかる人は上記のオフィシャルの方を見ることをお薦めします)
www.python.jp/

Pythonのお勉強 Part50
peace.2ch.net/test/read.cgi/tech/1413474092/

282 名前:デフォルトの名無しさん mailto:sage [2016/04/20(水) 18:15:55.60 ID:Mnj8e7w+.net]
st = """「あああ
いいい」
ううう
「えええ
おおお」
かかか"""

st_l = re.split("[「」]", st)
li = [[s.strip()] for s in st_l if s]

スマートに見えないな

283 名前:デフォルトの名無しさん mailto:sage [2016/04/20(水) 18:45:59.84 ID:fzTFty3T.net]
stripは要るのかな

284 名前:デフォルトの名無しさん [2016/04/20(水) 19:09:00.51 ID:ficmikJk.net]
>>275
全然スマートです。ありがとうございます。
そーか。とりあえず「」で区切っちゃって大丈夫なんですね。

285 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 01:45:55.77 ID:JNfavKpK.net]
>>275は、「」で囲まれたのと、そうでないのが交互にあるという規則性がある場合限定ですね
私はもっと柔軟に対応できるものをスマートに書いてみました、どうでしょうか

import re

st =

286 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 01:51:48.04 ID:JNfavKpK.net]
import re

st =

287 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 01:53:51.33 ID:JNfavKpK.net]
あれれ? これも書き込み失敗するかも?

import re

r = re.findall(r'「[\w\n]+」|[\w\n]+', st)
ss = []
for s in r:
  if s[0] == '「':
    ss.append([s[1:-1]])
  else:
    for s2 in s.split('\n'):
      if s2:
        ss.append([s2])
print(ss)

288 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 02:36:22.80 ID:EwYrzpdJ.net]
>>280
「ああ「いい」ううう「「」
みたいなのは?

289 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 03:00:10.13 ID:JNfavKpK.net]
更に良くしました。私を超える者を現れますまいw
連投失礼しました。

import re
st = '「あああ\nいいい \nづづづ」\nううう \n「えええ\nおおお」\nかかか\nででで'

#「」で囲まれたのとそうでないものを分ける
st2 = re.findall(r'「[\w\n ]+」|[\w\n ]+', st)

#「」で囲まれた\nだけ@に変換する
st2 = ''.join([re.sub('\n', '@', s) if s[0] == '「' else s for s in st2])

st2 = [s.strip() for s in st2.split('\n') if s]

#「」を消して、@を\nに戻す
st2 = [s.translate(str.maketrans('@', '\n', '「」')) for s in st2]
st2 = [[s] for s in st2]

>>> print(st2)
[['あああ\nいいい \nづづづ'], ['ううう'], ['えええ\nおおお'], ['かかか'], ['ででで']]


>>281
「と」が対になっていないので、おかしいです。
問題は改行毎にまとめたいが、「」で囲んだ部分は特別に1つにまとめることです。

290 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 03:54:19.21 ID:EwYrzpdJ.net]
>>282
おかしな入力があったらどうなる?
おかしい事を判別して例外処理しないと誤動作しない?



291 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 04:13:11.11 ID:JNfavKpK.net]
更に更に良くなりました。これが完成形です。

import re
st = '「あああ\nいいい \nづづづ」\nううう \n「えええ\nおおお」\nかかか\nででで'

#「」で囲まれたのとそうでないものを分ける
st2 = re.findall(r'「[\w\n ]+」|[\w ]+', st)

#「」を消しす
st2 = [s.translate(str.maketrans('', '', '「」')) for s in st2]
st2 = [[s] for s in st2]
>>> print(st2)
[['あああ\nいいい \nづづづ'], ['ううう '], ['えええ\nおおお'], ['かかか'], ['ででで']]


>>283
'「ああ「いい」ううう「「」'
 ↓
[['ああ'], ['いい'], ['ううう']]
になります。

292 名前:273 [2016/04/21(木) 09:41:17.48 ID:6tBoJNDp.net]
そーか、やっぱり単純にsplitだと「」で括られていない部分が連続するとまとめられちゃいますね。
勉強になります。

293 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 12:21:53.03 ID:9Ocgrhnl.net]
未定義要件の動作を議論するのは無意味

294 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 15:48:48.16 ID:25zBn4bh.net]
結局何をしたいのかを書いてくれないとな

295 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 21:37:00.75 ID:n6rcxvuM.net]
「を消して」でsplit

296 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 21:40:02.51 ID:n6rcxvuM.net]
ごめん違うわ

297 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 21:41:59.60 ID:n6rcxvuM.net]
2回splitで。

298 名前:デフォルトの名無しさん mailto:sage [2016/04/21(木) 23:41:31.72 ID:dDBfDkwj.net]
質問ですが、
テキスト中に、特定でない行に文字と数字が
例えば、
R_0 140
となってる右側の数字140だけを抽出して、その数字だけを新規テキストに書き込みたいです。

教えて頂きたいのは、
文字R_0は固定なので、それを検索して右の数字を抜き出したいです。

for line in open("テキスト名",r)
ここから、もうわかりません。。

調べたら、searchか、remachを使えば良さそうですが。。

299 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 00:12:21.30 ID:LlQDmVKC.net]
あげですf(^^;

300 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 06:10:11.65 ID:Dkr53bUX.net]
$ awk '($1=="R_0"){print $2}' テキスト名 > 新規テキスト
で良いじゃないか。



301 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 09:10:15.85 ID:oq2cKYCg.net]
pythonスレですが…

302 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 12:25:57.63 ID:xOnwNmiP.net]
馬鹿には無理

303 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 13:43:33.43 ID:EkqtZvSF.net]
つsubprocess

304 名前:デフォルトの名無しさん mailto:sage [2016/04/22(金) 20:37:23.84 ID:BVoUdrm2.net]
>>293
ありがとうございます。

305 名前:デフォルトの名無しさん mailto:sage [2016/04/24(日) 23:43:09.44 ID:0ri7yHJP.net]
py3でいまからGUIはじめるなら
なにがいいのでしょう?

py2でtkinterをかじった程度です

pyside?

306 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 00:00:36.78 ID:l+mFC/yX.net]
tkinterを極めるのがいいかも
pysideはまだ3.5に対応してなくてinstall失敗してしまう
最初から入っているtkinterはすばらしいですよ

307 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 01:32:04.26 ID:oFtpNa+/.net]
wxpython

308 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 01:44:29.89 ID:Eazp3bIv.net]
>>299
まじでか
すでに3.5インストールすみ

3.0系やるついでにtkinter以外でと
おもたけどあかんなpyside

309 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 16:33:34.29 ID:Eazp3bIv.net]
py3.5でpipでインストールすると
pysideエラーデマシタ

tkinterで我慢します

アドバイスありがとう

310 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 17:41:04.74 ID:dWHudr3C.net]
リストxの各要素について、
5以上か否か、真偽を求めたい

x = [2,5,6,4,3,7,8]

for文を使わずにできますか



311 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 18:02:49.36 ID:SZVE1YCj.net]
>>303
map((lambda n : n >= 5), x)
もしくは numpy 使って np.array(x) >= 5

312 名前:デフォルトの名無しさん [2016/04/25(月) 19:41:24.93 ID:7LQ8uH73.net]
>>304
lambda文括弧でくくらんでもいい

313 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 20:28:42.67 ID:Kx6synrZ.net]
>>303
真偽結果をリスト、タプル化するなら内包表記

314 名前:デフォルトの名無しさん [2016/04/25(月) 20:34:29.35 ID:cxik8geW.net]
>>303
x = [2,5,6,4,3,7,8]
y = []
while len(x):
a = x.pop(0)
if a >= 5:
y.append(True)
else:
y.append(False)

315 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 20:49:37.72 ID:WSa8IVDE.net]
>>307
ダメ

y = [True if i >= 5 else False for i in x]

316 名前:デフォルトの名無しさん [2016/04/25(月) 20:57:08.52 ID:cxik8geW.net]
>>308
それfor文使ってますよね

317 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 21:00:10.59 ID:fUWXiaow.net]
for statementと list comprehensionsが同じとか頭わいてんの?
素人はすっこんでろ

318 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 21:02:18.87 ID:TbMWNgx2.net]
>>303
ge5 = lambda x: [x[0] >= 5] + ge5(x[1:]) if x else []
下は3.5から可能
ge5 = lambda x: [x[0] >= 5, *ge5(x[1:])] if x else []

>>309
for文じゃなくて内包表記のforキーワードだよ
>>303の文面から読み取れる題意には反してない

319 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 21:18:47.96 ID:ZcnFYSo9.net]
>>308
それ
y = [i >= 5 for i in x]
でよくない?

320 名前:デフォルトの名無しさん [2016/04/25(月) 21:29:11.08 ID:cxik8geW.net]
list comprehensionsいただきましたw
英語やで英語w
素人はすっこんでろよお〜www



321 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 21:45:01.69 ID:dWHudr3C.net]
>>304-313 皆さんありがとうございます(*^^*)

322 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 21:48:43.22 ID:pBTEy5GU.net]
forを使いたくないのは速度を求めているのか?
なら内包表記が一番だな

323 名前:デフォルトの名無しさん mailto:sage [2016/04/25(月) 23:54:55.39 ID:ZcnFYSo9.net]
>>313
残念だけど307のコードは本当に酷いよ

324 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 01:13:51.53 ID:0j8xrCyf.net]
悲しくて直視できないね

325 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 04:45:10.72 ID:qPa/XLX4.net]
「forを使わない大喜利」だし流石に日ごろ書いてるわけではなかろう…

326 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 04:51:18.93 ID:rS0q6hMI.net]
笑いの方向性というやつか

327 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 06:16:16.42 ID:BpQx6lpz.net]
初心者が閃いた構想を勢いつぎ込んだ迫真のコードっぽくて面白かったよ
whileの毎回lenとかif分岐してboolリテラル単騎はもう書けないなぁとしみじみ

328 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 06:19:32.11 ID:34KBUNZF.net]
実行速度にどのくらい差が出るのかな
誤差程度かもしれない場合は保守性とか他の観点で組織毎に優劣が変わると思う

329 名前:デフォルトの名無しさん [2016/04/26(火) 06:26:24.03 ID:nK/cAQ7A.net]
朝から笑かすなよ、どんだけ悔しいねんw

330 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 06:32:57.36 ID:0j8xrCyf.net]
303みたいなPythonでまず書かれないようなコードに保守性も糞もあるか



331 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 06:38:06.68 ID:Lb6lj54p.net]
x = [2,5,6,4,3,7,8]
y = []
while x:
y.append(x.pop(0) >= 5)

332 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 07:09:58.89 ID:34KBUNZF.net]
>>322
307とは別人ですが

333 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 07:20:08.42 ID:BpQx6lpz.net]
>>307>>324>>312をそれぞれxを引数とする関数にして
disでバイトコード見たら31step:19step:7step
CALL_FUNCTIONの回数で比べると3*データ長:2*データ長:1

実測はしてないけどO(n)とO(1)の差がある

334 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 08:54:44.36 ID:s/Ymjz71.net]
流石に O(1) ってことはないんじゃないか?

335 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 09:16:21.60 ID:oYE38e86.net]
何れにしても>>307はクソってことで

336 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 12:22:58.69 ID:BN3Nt3WB.net]
保守性がどうのとのたまった奴も別人だろうが何だろうが同列でクソ判定

337 名前:デフォルトの名無しさん [2016/04/26(火) 12:28:43.12 ID:GowqH7ga.net]
お前らガチの初心者ばかりなんだな
マジでちょっと驚いたわ

338 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 12:30:01.82 ID:BN3Nt3WB.net]
ただ326も若干頭悪そう
プログラマレベル2くらいか
www.geekpage.jp/blog/?id=2007/7/9
>多少自信過剰な状態にある

339 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 12:30:39.47 ID:BN3Nt3WB.net]
>>330
人間初心者は引っ込んでろよ、カス

340 名前:デフォルトの名無しさん [2016/04/26(火) 12:38:12.73 ID:GowqH7ga.net]
>>332
いやお前が引っ込んどいた方いいぞマジで
せめて質問する位にしとけ
初心者が調子こいて回答してしまったら初心者同士の潰しあいにしかならんぞ
いくら2ちゃんとはいえそこまでクソスレに落とすことはないだろ?な?



341 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 18:11:39.15 ID:BpQx6lpz.net]
ほとんどC側で計算する>>312もデータ量に応じて処理は増えるよね
>>326のO(1)の件は撤回するよ

Cより遅いPythonの部分で処理がデータ量に応じて増減しないのででまかせ言った
指摘してくれてありがとう

342 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 18:37:06.02 ID:pg3hvwR3.net]
これにO(1)とか言い出す奴がいるとは思わなかった

343 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 19:18:00.71 ID:3o0mqQeb.net]
tkinter widgetでウィンドウのリサイズ
にあわせてフォントサイズも変更するには一体どうすればいいのでしょう?

widgetをdestroyして再描画する以外に
なにかてはないでしょうか

344 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 19:50:33.07 ID:6sXX5nQB.net]
>>333
昨日とキャラ変えたの?
似合ってるよ
馬鹿みたいで

みたいじゃないか

345 名前:デフォルトの名無しさん [2016/04/26(火) 20:13:18.22 ID:WdT0HFih.net]
for より filterのが遅いん?

ideone.com/7geAW0
1000000
for: 0.1658134460 2996363
filter: 0.1980366707 2996363
10000000
for: 1.6026144028 30001997
filter: 1.9617335796 30001997

346 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 21:43:21.63 ID:YqodYrGC.net]
>>338
それを10回とか30回とか繰り返して平均値を出して検定すれば有意差があるかどうか判る

347 名前:デフォルトの名無しさん mailto:sage [2016/04/26(火) 22:06:55.54 ID:7Keeiw0C.net]
>>336
tkは簡易UI用だからいろいろするなら
とっととwxなどに手をだすべき。

348 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 01:11:17.28 ID:vpv25bM3.net]
>>336
リサイズ後の、ウィンドウサイズを取得して、

それにフォントサイズも合わせれば?

349 名前:デフォルトの名無しさん mailto:sage [2016/04/27(水) 12:07:13.45 ID:xxQ1k4NJ.net]
>>340-341
米有

wxpythonのサイトいくつか
閲覧しようとおもたら
汚染されすぎ

いったいなんなんや

350 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 16:51:39.60 ID:g2IM3M23.net]
↓これ、a[0:-1]で9が含まれないのが納得できない
a[-1::-1]は9を含むのに、何で??


a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> a[0:-1]
[0, 1, 2, 3, 4, 5, 6, 7, 8]

>>> a[-1::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]



351 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 17:03:24.09 ID:g2IM3M23.net]
自己解決しました。

352 名前:デフォルトの名無しさん [2016/04/30(土) 17:43:36.20 ID:fhbvjsol.net]
事故解決したなら何が問題だったか書いてけよ

353 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 23:05:19.78 ID:nHwI9s9g.net]
納得できないところが問題でした

354 名前:デフォルトの名無しさん mailto:sage [2016/04/30(土) 23:11:03.62 ID:39QHwzY8.net]
まぁaだけでいいからな[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]なら

355 名前:デフォルトの名無しさん [2016/05/01(日) 01:57:43.69 ID:e+z55mXR.net]
a[0:-1] 最後を含まず

a[0:] 最後を含む
a[:] 最初・最後を含む

356 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 09:35:54.76 ID:eq5F2Cmv.net]
v=[a, b, c]

aの左が0 or -3
bの左が1 or -2
cの左が2 or -1

[0:-1]だとa b
[0:-3]だとa b c
になると思う

357 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 09:37:20.30 ID:eq5F2Cmv.net]
>>347
a[:]はaのコピーになるんじゃないか?

358 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 10:28:58.65 ID:x1IHnc1S.net]
a[start:end]

start から end-1 まで抽出

>開始インデクスは常に含まれ、終了インデクスは常に含まれないことに注意してください。
docs.python.jp/3/tutorial/introduction.html

359 名前:デフォルトの名無しさん [2016/05/01(日) 10:38:20.29 ID:tKi6j9CT.net]
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイート

360 名前:ィ願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
[]
[ここ壊れてます]



361 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 10:45:18.63 ID:ZxoAm746.net]
>>352
死ね

362 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 11:01:54.24 ID:jPcagDz3.net]
>>352
あっちこっちでこんなくだらんの書き込むなよ

363 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 11:52:53.09 ID:udmkAsOz.net]
fanc={}

deffanc={}

の違いってなんですか?
下だと思った通りの結果になるのですが、上だとうまくいきません。

ただ、下だとたまにエラー扱いになることがあります

2つの違いを教えてください

364 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 12:04:40.69 ID:/HEiP4n3.net]
これPythonの質問か?
本当に?
コードが崩れるならideoneとかに貼ってくれ

365 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 12:13:59.31 ID:/HEiP4n3.net]
あと、思った通りの結果って何だ
そこ大事だろ略さず書こうよ

マインドシーカーやらされてる気分だぜ

366 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 12:24:08.08 ID:udmkAsOz.net]
>>357
このfancをそのあとlistにいれたいんです!
deffancだとlistにうまく内包されプログラムも回るのですが、fancの方だとまわりません。

しかしdeffancだとたまにエラーメッセージで
fancは定義されていません

って出てきます。
ソースコードは全く同じなのに、deffancの時にどうして結果が変わってしまうのかがわからなくて、、、

fancの場合はエラーメッセージは出ないのですがうまくリストに内包できません。

deffancでエラーメッセージが出たらいちどdefを消して実行し、もう一度defを足して実行するとうまくいくことが多いです。

初心者ですみません。コードは同じなのになんでエラーになるのかがわからなくて、、、

367 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 12:42:09.12 ID:/HEiP4n3.net]
本当に本当に355の通りに書いているならエラーなんて起きない
ideone.com/Yujqud

あなたが故意にせよそうでないにせよ、原因を端折って話してるか
コードを貼った時に原因の箇所が抜けているのだろう
埒があかないからコード全文が貼られない限りこれ以上の相手はしない

368 名前:デフォルトの名無しさん mailto:sage [2016/05/02(月) 12:49:10.97 ID:udmkAsOz.net]
>>359
原因は自分でもわかんないです。すみません。
ただ、解決しました。ありがとうございました。


fanc={}というものが一度も書かれていない状態でまわすとうまくいかないみたいです。

しかし書き直したりして、一度でも書かれていればうまくまわりました。
そのため起動し直した時のみうまくいかなかった様です。

なのでコードの、一番上に
fanc={}
を書き足し、実際に使用するところには
deffanc={}
にしたところ起動し直した時でも思い通りにまわりました。

原因もわからず、何が悪いのかとかもわからないためご迷惑おかけしました。とりあえず解決できてよかったです。ありがとうございました!

369 名前:デフォルトの名無しさん [2016/05/02(月) 16:11:30.96 ID:YuTS7ZzZ.net]
>>360
原因がわからないなら

370 名前:決といわないのでは? []
[ここ壊れてます]



371 名前:デフォルトの名無しさん [2016/05/02(月) 16:31:54.38 ID:aR8AOrvI.net]
franc永井

372 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 04:42:15.25 ID:1U/0N7SV.net]
Rubyで説明するけど、Rubyでもいきなり、a を初期化せずに、
a.メソッド
と実行すると、そういう変数に、そういうメソッドは存在しないと出るけど、

一度でもその変数を初期化していると、正しくメソッドを呼べる
a = []; # 空配列
p a.length #=> 0

最初に変数を初期化しておくか、aがnilなら、aを初期化するように書いておく
a = nil;
a || a = [];
p a.length #=> 0

373 名前:デフォルトの名無しさん [2016/05/03(火) 13:42:26.76 ID:GkoqJJb4.net]
行列の掛け算を行う関数を作成しなさい.m x n の行列と n x pの行列の積は,
m x pの行列になる.m行n列の行列はリストの入れ子で表現することができる.
例:
>>> A = [ [1, 3], [-5, 6], [2, 4]]
>>> B = [ [1, 4], [8, 7]]
>>> MatrixProduct(A, B)
[[25, 25], [43, 22], [34, 36]]


どういうことだってばよ・・・

374 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 15:14:06.65 ID:dHWPvhnY.net]
>>364
行列知らない?
3行2列の行列と
a b
c d
e f

2行2列の行列
G H
I J

の積は3行2列の行列
aG+bI aH+bJ
cG+dI cH+dJ
eG+fI eH+fJ
になる

375 名前:デフォルトの名無しさん [2016/05/03(火) 15:56:33.16 ID:Np7b8nuK.net]
>>365

おお、さんくす

def getMatrix(i1,i2,j1,j2):
A=[i1,i2]
B=[j1,j2]

C=[i1*j1+i2*j1,i1*j2+j2*j2]

return C

これでCはでるんだけど、関数の引数(?)で自由にリストを生成するにはどうしたらいいかね・・・

376 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 16:32:12.89 ID:dHWPvhnY.net]
ここまで判ったらあとは判りそうなものだけど
for使うとかかな

377 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 03:13:14.37 ID:u3PanbU2.net]
@

378 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 08:21:47.73 ID:vLWGJu+L.net]
>>368
Python 3.5 から、行列積を表す演算子として、@が導入された。けれど、標準では、@での行列積の実装はされてなくて、numpyとかのライブラリでの記述法の統一の意味しかない、、、んだっけか。

379 名前:デフォルトの名無しさん [2016/05/04(水) 18:41:42.97 ID:2Ut8AEmG.net]
def MatrixProduct(A, B):
result = [[0 for j in range(len(B[0]))] for i in range(len(A))]
for arow in range(len(A)):
for bcol in range(len(B[0])):
for acol in range(len(A[0])):
brow = acol
result[arow][bcol] += A[arow][acol]*B[brow][bcol]

return result

380 名前:デフォルトの名無しさん [2016/05/04(水) 18:46:50.12 ID:2Ut8AEmG.net]
行列の列数と行数が一致しているかチェックしたほうがいいかも
他にもチェックが必要かも



381 名前:デフォルトの名無しさん mailto:sage [2016/05/04(水) 18:49:24.38 ID:cRuVDbfJ.net]
めちゃくちゃ遅そう

382 名前:デフォルトの名無しさん [2016/05/04(水) 18:52:46.03 ID:2Ut8AEmG.net]
速いのはnumpy使えばいいけど
速いの出せば?






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

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

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