Pythonのお勉強 Part75 (901レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
380(8): デフォルトの名無しさん (ワッチョイ 6d54-bkwb) [sage] 06/24(火)20:16 ID:oUEsN0j80(1/3)
vectorというオブジェクトがあって
for item in vector:
みたいに読み出すと、
(0, 100)
(1, 200)
みたいにindexとvalueのタプルが返る
一方、リストとしてもアクセスできて、
vector[0]とすると100が読み出せる
どうやってこんなの実装しとるの?
387: デフォルトの名無しさん (ワッチョイ 4b10-xDDR) [sage] 06/25(水)07:47 ID:E5oJMqOn0(1)
dunder属性のカスタマイズが禁じ手だとは必ずしも思わないけれど、>>380の例なら組み込み関数enumerateを使う方が普通だし分かりやすいんじゃないかなと思うけど。
389: デフォルトの名無しさん (アウアウウー Sa69-G7Nc) [] 06/25(水)09:42 ID:MDVgP0HOa(1)
>違う言語みたいにする
積極的に乗っとるのは良いけど違う言語みたいにするのは違うんだよな
立ち入った方が良い場面があるし立ち入っても(普通は)違う言語みたいにはならない
>>380 の例は
>enumerateを知らない人
に一票
395: デフォルトの名無しさん (ワッチョイ e381-xDDR) [sage] 06/25(水)20:47 ID:2LI3KTsN0(1/2)
>>380ならenumerateでいいんじゃないかという話は分かるんだけど、>>380とsparseなarrayというのがどう繋がっているのかよくわからないんだが。380とは別の話になってる?
396: デフォルトの名無しさん (ワッチョイ 6d54-bkwb) [sage] 06/25(水)20:51 ID:slGHajaU0(2/4)
>>380はアクセス方法によって挙動が変わるオブジェクトの話がしたいだけで、
enumerateは何の関係もない
397: デフォルトの名無しさん (ワッチョイ e381-xDDR) [sage] 06/25(水)21:02 ID:2LI3KTsN0(2/2)
うーん、>>380の(0, 100)(1, 200) という出力例(およびindexという用語を使ったこと)がまずかったということかな。380を見れば平均的なPytnonユーザーはenumerateの話かなと思うのが普通だと思うけど。
イテレーションに対して(0, 100)(1000, 'hi') を逐次的に返すようなオブジェクトの話がしたいってことだったのかな。
400: デフォルトの名無しさん (ワッチョイ 05da-xDDR) [sage] 06/25(水)23:10 ID:SPCnqGQx0(1/2)
誤読とか早とちりって言われても、>>380みたいなことをやりたいならenumerateを使うのが最も普通の発想だしなぁ……(enumerateを知らない人ならともかくとして)。
>>380の0, 1 というindexの例とか「リストとしてアクセス」という表現からは、>>388のいうsparseなarrayの話は想起できないってことをやんわり遠回しに示唆したら、誤読で早とちりって言われちゃったよ。何で説明能力のないやつに限って自分の能力の欠如を人のせいにするんだろうね。挙句に「なんで引きずるかな」と来たよ。お前がそう書いたからだよ。さすがにちょっとげんなりした。
447(1): デフォルトの名無しさん (ワッチョイ b754-1VI2) [sage] 07/12(土)15:22 ID:bJvRyWpc0(1/2)
sparseの話に戻ってきたな
>>380は売り物のシステムの一部で、どうやってるんだろうと見たけど.pycしか無かった
しかも本体はC++だった
448: デフォルトの名無しさん (ワッチョイ bf01-6GxP) [sage] 07/12(土)17:03 ID:Tw4RWHuP0(1)
>>447
JavaScriptのArrayはイテレート時にundefinedの要素も返す必要があるからそういう使い方をしないsparse arrayとは異なる
本体がCやC++でもPythonのC APIで__iter__や__getitem__相当のものを定義するだけ
少し調べればわかることだと思うんだが>>380から3週間も足踏み状態?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.036s