X



Pythonについて(アンチ専用)
レス数が950を超えています。1000を超えると書き込みができなくなります。
0883デフォルトの名無しさん
垢版 |
2018/08/31(金) 19:05:06.17ID:9BvJl+C0
>>882
そんなもんおまえが気づけた程度の極意なんやから
未来ある有望な子どもたちは当たり前のように気づくやろw
論理的ってこうゆう事やでアホンダラw
0884デフォルトの名無しさん
垢版 |
2018/08/31(金) 23:27:44.03ID:N52+Kto5
日本の学校は子供を潰す
延びる芽を摘む教育
0885デフォルトの名無しさん
垢版 |
2018/09/01(土) 00:19:19.24ID:MpWrJr2V
>>884
言っとくけどおまえの芽はもとから腐っとったからなw
0886デフォルトの名無しさん
垢版 |
2018/09/01(土) 16:47:17.22ID:h137Mfrw
インデントが崩れちゃうとそれだけで構造が読みにくくなる。
整形もプログラムを読解しながらやらなきゃならないので非常に効率が悪い。
0888デフォルトの名無しさん
垢版 |
2018/09/15(土) 15:16:31.17ID:heijdb7v
Pythonって、リストに値を追加する時、配列のような index 番号か、
または、'Hello' などの値を指定して、その値を探して一致した要素
の直前か直後辺りに追加する事は出来ても、C言語のように、
ポインタを指定して、そのポインタの指す要素の直後に追加する
ことは出来ないよね。

もし、そうだとすると、言語自体が高速動作に向いてない。

元々、データ構造的にリストとは配列とは異なる概念で、前者は
ポインタで互いに要素をリンクした構造。

だから、index 値から、要素を特定するには、先頭から順番に
「辿る」作業が必要で、要素数がNの時、O(N)の時間がかかって
しまう。値を探すのも、当然O(N)の時間がかかる。

Cの場合のポインタや参照などで場所を指し示す方法だけが、
O(1)の時間で済む。

ポインタの概念が理解しにくい人もいるらしいが、Pythonの方法だと、
どんなにCythonなどでコンパイルしても、アルゴリズム的に
速度は上がらない。
0889デフォルトの名無しさん
垢版 |
2018/09/15(土) 15:32:30.08ID:heijdb7v
以下の仕様もダメ。ループでの要素削除がまともに出来ない。この不具合
を回避するためにはリストをまるまるコピーしなくてはならず、とても効率が悪い。
Cythonでコンパイルしても、Cに比べてとても遅くなってしまう。


http://blog.livedoor.jp/kmiwa_project/archives/1030391127.html
http://sakitake.blogspot.com/2012/10/pythonfor.html

Python で リストの中身をforループで削除する時の注意点。

numbers = [1,2,3,4,5]

とあって、for ループで numbers の中身を消したいと思って、下記のようにすると、失敗する。

for e in numbers:
  numbers.remove(e)

numbers の中に、 2と4 が残ったままとなる。

numbers = [2,4]

Pythonの仕様。

そこで、このようにする。

for e in numbers[:]:
  numbers.remove(e)


[:] とすることで元のリストのコピーとなり要素の順番を全て取得でき、全ての要素を順番に削除が行える。
0890デフォルトの名無しさん
垢版 |
2018/09/15(土) 15:54:07.45ID:heijdb7v
>>888
「辞書」や「集合(Set)」は、O(1)で探せるらしいが、それは、Hush法を用いている
からだ。しかし、例え O(1)でも、データを探すには、例えばデータが文字列なら
最低1回の文字列比較(C言語でのstrcmp()みたいなもの)は必要になるので、
文字の長さに比例した時間がかかってしまう。

要素(データ)が文字列の場合に限らず、1つ1つの要素のデータが複雑
になった場合は、その複雑さに比例したような検索時間がかかるようになる。

つまり、要素数をN、1つあたりの要素の平均サイズをM とすると、
「辞書」や「集合」であっても、O(M)の時間がかかる。

リストなら、O(M・N)の時間がかかる。

一方、C言語のリストなら、ある要素の直前、直後に追加するのには、
全く探す動作が必要ないので、O(1)で済む。

こういうところが、PythonとCの速度差に繋がる。
0891デフォルトの名無しさん
垢版 |
2018/09/15(土) 15:59:11.04ID:AVfR6YnT
>>888
numpy
0894デフォルトの名無しさん
垢版 |
2018/09/16(日) 11:17:08.95ID:HF0YmRsW
povertyかと思った
0898デフォルトの名無しさん
垢版 |
2019/01/12(土) 11:09:31.46ID:k/r1EiKa
>>> a = [1, 2, 3, 4, 5]
>>> for e in range(len(a)): a.pop()
>>> a
[]
0899デフォルトの名無しさん
垢版 |
2019/01/25(金) 12:56:22.32ID:aS+Q22GK
>>888
PythonのリストのランダムアクセスはO(1)で、実態は配列だよ
また、Cのポインタは配列アクセスと同じなので、
配列操作に関して言えばポインタを持つのもインデックスを持つのも同じ
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
b = 2;
// a[b] == *(a + b) == *(b + a) == b[a] == 2
0900デフォルトの名無しさん
垢版 |
2019/04/12(金) 11:28:27.17ID:1GqnDIS9
誰が書いても同じように書けるとか言うくせに
同じようなモジュールたくさん作りやがって。

ディレクトリ名取るのに os.listdir と glob.glob と pathlib.glob ... バカかよ。
0901デフォルトの名無しさん
垢版 |
2019/04/12(金) 13:08:25.69ID:WO5SLys3
C:/Users/Owner/Documents/*.txt

Ruby では、Windows のファイルパスを、/ で書けるけど、
Python では、\ だから、うっとおしい!
0902デフォルトの名無しさん
垢版 |
2019/04/12(金) 13:21:29.77ID:VR9mZ4dF
うちのpythonはwindowsでも/使えてるんだが
0904デフォルトの名無しさん
垢版 |
2019/04/18(木) 21:39:26.04ID:wluzRVJk
map あるのに list内包とか作ってブレブレ。
list 返すのか iterable オブジェクト返すのかも。
オブジェクト指向に関数型の見た目だけ取り入れてごちゃごちゃ。

初心者の取り込みには成功したね。
上級者の生産性は落ちるけど。
0905デフォルトの名無しさん
垢版 |
2019/05/22(水) 17:02:58.86ID:x0vcQb3n
確かにpy3になってlist(hoge)することが多くなった
もう少し柔軟に暗黙の変換してくれてもいいのに
0906デフォルトの名無しさん
垢版 |
2019/05/23(木) 11:12:54.31ID:IyFdHRzG
Pythonはスリザリンの陰謀だからな
つまりそれはあの人を彷彿とさせるのであって邪悪なんだよ
0909デフォルトの名無しさん
垢版 |
2019/06/03(月) 12:13:42.21ID:ZJy6OnVg
大腸ですね判ります
0911デフォルトの名無しさん
垢版 |
2019/06/14(金) 12:13:07.84ID:6tPeY5qE
>>910
>自分が知っている範囲では、他のメジャーな言語でこれほどコロンを多用する言語はない。
BASIC でマルチステートメント使わないのかな?
0912デフォルトの名無しさん
垢版 |
2019/06/14(金) 12:15:39.40ID:bpAwmG5b
私は馬鹿ですって言ってるようなもの

●コロン忘れる←セミコロン行末に書く言語のことを忘れてるだけじゃね
●Scheme/Rubyと比べて値返し←Cも知らんのかこいつ&PythonはPerlの悪弊から逃れられたのにRubyの悪弊持ち込んでどうする?
0913デフォルトの名無しさん
垢版 |
2019/06/14(金) 17:23:09.20ID:AQvHkPsD
>自分が知っている範囲では、他のメジャーな言語でこれほどコロンを多用する言語はない。

せやな…   C++

> Pythonでは、関数が返す値には明示的に「return」を付ける必要があるのだ。

せやな…   PowerShell
0915デフォルトの名無しさん
垢版 |
2019/06/15(土) 11:08:48.32ID:Z5/LYv7k
文法ネタで盛り上がってる訳じゃないな

シッタカでドヤってるアホが
間違いでツッコミどころ満載だから
盛り上がる
0916デフォルトの名無しさん
垢版 |
2019/06/15(土) 13:58:57.32ID:PTHWyDER
>>913
return 使わないで戻り値返す言語って何があるの?
関数系は当たり前だけどさ。
0917デフォルトの名無しさん
垢版 |
2019/06/15(土) 14:04:06.60ID:0bKxWw8E
Cは実質voidでもアキュムレータの値をお漏らしする実装がある
*ubyはそれを悪用したと表明している
0918デフォルトの名無しさん
垢版 |
2019/06/15(土) 14:21:26.25ID:oZ4xCIwS
>>916
目か頭に障害でもあるのか?
PowerShell って明記してるんだが…

あとこじつけでもいいならVBAとかPascalもReturn使わずに戻り値を戻せる
0919デフォルトの名無しさん
垢版 |
2019/06/15(土) 15:32:44.72ID:PTHWyDER
>>918
老眼でな。

PowerShell は return で返すんじゃないのか。
他の言語だと result 使うとか関数名に代入とかもあるけどな。
手続き形で明示的に書かなくてもいいのは Julia くらいしか知らなかったんで。
0920デフォルトの名無しさん
垢版 |
2019/06/15(土) 15:55:56.04ID:oZ4xCIwS
>>919
PowerShell の Return は制御を戻す役目
シンタックスシュガーとして
Return $a
とか書けるけど
$a
Return
って書いても同じ

> 他の言語だと result 使うとか関数名に代入とかもあるけどな。
それ
>> あとこじつけでもいいならVBAとかPascalもReturn使わずに戻り値を戻せる
のことだよね
result は Delphi だと思うが
0921デフォルトの名無しさん
垢版 |
2019/06/15(土) 16:29:47.79ID:h/yLXXB1
ネストしたブロックからの制御が足りなかったような?
perl だとこんな感じの深いところからでも redo continue last などがラベル指定で制御できる
last TRIANGLE if ($debug); とか
かなり自由にブロック(ブロックはスコープもその中になる。)を作れて、
必要ならラベルもつけられる。つけたラベルは redo last などの後につけて制御できる。ついでに制御の先が分かりやすい

TRIANGLE:
{
RUN:{
DISPLAY:{
}
GENERATOR:{
}
}
}
}
0922デフォルトの名無しさん
垢版 |
2019/06/15(土) 18:23:27.01ID:hvg4pFk6
>>919
Perl もそう。
スクリプト系言語は、最後の評価結果が戻り値になるのが多いやろ。

これを知らんようなヤツは、言語を評論してはいかんねえ。
0923デフォルトの名無しさん
垢版 |
2019/06/15(土) 19:57:42.74ID:PTHWyDER
>>922
確かに perl もそうだったな。return 使うけど。

スクリプト系ってあと何だろう?
JavaScript 、PHP、Luaあたりかな。

オレの良く知らないGoとかRustとかNimとかCrystalあたりかと思ったんだよ。
知ってたら教えてね。
0924デフォルトの名無しさん
垢版 |
2019/06/15(土) 23:35:25.20ID:VnSVMhRs
Ruby は、return を書かなくてもよい

この場合、最後の評価結果が、戻り値になる
0925デフォルトの名無しさん
垢版 |
2019/06/16(日) 11:32:58.74ID:yEr4r4hL
returnを書くかどうかで生産性に違いが出ると思ってるやつって
こんなにいるのか?
0926デフォルトの名無しさん
垢版 |
2019/06/16(日) 11:40:28.09ID:NdAq/MEw
perl は return 不要だ
python は return 書かないと None が還るので戻り値は「常にある」
0927デフォルトの名無しさん
垢版 |
2019/06/16(日) 12:11:14.67ID:vk4Ea3qx
return 書かないと途中で抜けられないだろ。
0929デフォルトの名無しさん
垢版 |
2019/06/16(日) 13:08:45.64ID:yEr4r4hL
じゃあなんでreturnについてこれだけレスがついてるのかね?
文脈読めない人にはそう感じないのかもしれんが。
0930デフォルトの名無しさん
垢版 |
2019/06/16(日) 13:54:06.60ID:miVb06Hj
値返すのにreturn使う言語と使わない言語あげてるだけだろ…
どこの文脈曲解したら生産性の話になるんだよw
0931デフォルトの名無しさん
垢版 |
2019/06/16(日) 19:56:22.25ID:yEr4r4hL
なるほど生産性とまるっきり関係のないことをあーだこーだ言ってるんだ。
そりゃすごいね。
0934デフォルトの名無しさん
垢版 |
2019/06/16(日) 21:56:33.92ID:yEr4r4hL
returnについてあれこれ言語別の特徴をドヤ顔しつつ書き込んでましたが
生産性には一切関係ない無駄議論でした。
0937デフォルトの名無しさん
垢版 |
2019/06/17(月) 07:16:53.06ID:F/pecKeJ
大多数: あれは return が必要、これはなくてもいいぞ… ワイワイ、ガヤガヤ
ID:yEr4r4hL: 生産性ガー
大多数: いや、生産性なんて話してないし… (当惑
ID:yEr4r4hL: 生産性の話しないのはおかしい
大多数: いや、おかしいと言われても… (困惑
ID:yEr4r4hL: 無駄議論かよ!
大多数: (匿名掲示板で何イキってるんだよ…)
0939デフォルトの名無しさん
垢版 |
2019/06/17(月) 15:35:46.40ID:lxO8a0KV
馬鹿自慢大会開催のお知らせ
0940デフォルトの名無しさん
垢版 |
2019/06/17(月) 18:31:59.14ID:zZL/ZenR
>>938
>・リストに対してmapやfilterといった関数を適用した結果が、リストではなくイテレーターのオブジェクトになっている
本これ。

あと三項演算子のifは本当マヌケ。
0941デフォルトの名無しさん
垢版 |
2019/06/17(月) 19:34:42.89ID:0ie+B7DN
>・リストに対してmapやfilterといった関数を適用した結果が、リストではなくイテレーターのオブジェクトになっている
C#もそういう感じだが、むしろそれがいい。
イテレータからリストを作るのは簡単だし、なによりも遅延実行にする余地ができる。
0942デフォルトの名無しさん
垢版 |
2019/06/17(月) 20:23:37.78ID:zZL/ZenR
イレテータを返すのかリストを返すのかが直感的に分からない。
遅延評価は甘え。
0943デフォルトの名無しさん
垢版 |
2019/06/18(火) 01:21:51.16ID:Zz4+a6Aw
>>942
そのへん、C#はすぐわかるからな。w
原則はイテレータだし、IDEサポートが最強だし。

Pythonは、全部イテレータ返しにすればいいんじゃないの?
0944デフォルトの名無しさん
垢版 |
2019/06/18(火) 02:12:15.49ID:PmBejiWq
Ruby でも、Enumerable よりも、
Enumerator を戻してくれる方が、実体化が遅延されるからよい

ドンドン、Enumeratorでつなげていって、最後に配列化(実体化)する
0945デフォルトの名無しさん
垢版 |
2019/06/18(火) 07:45:58.61ID:TXDiWDdD
pythonのジェネレータ関数の仕様は、よく言えば不親切、ありていに言えば狂ってる。
なんであんな仕様にしたんだか。
0946デフォルトの名無しさん
垢版 |
2019/06/18(火) 14:01:40.11ID:1CtlGReK
C# の IEnumerable はキモい
0947デフォルトの名無しさん
垢版 |
2019/06/18(火) 18:52:58.21ID:mitLuzec
キモいのは最初だけだよ。。。
すぐに馴れて、キライじゃなくなるよ。。。

実際、発明だったことは間違いないし。
0948デフォルトの名無しさん
垢版 |
2019/06/18(火) 22:13:54.84ID:gRhwyB3T
>>945
Haskellの遅延評価を持ってきたかったのかもな
どちらも無限に続く数列っぽく扱える

そしてpython は速度と柔軟性のバランスの着地点を探しながらこうなったと
0949944
垢版 |
2019/06/18(火) 23:39:26.95ID:PmBejiWq
Ruby でも、Enumerable#lazy で、無限配列を扱える。
Enumerator のように、select, map, reject など、一部のメソッドで遅延評価される

それで最後に、to_a, first, take などが呼び出される所で、配列化(実体化)される

p range = ( 1..Float::INFINITY )
#=> 1..Infinity 範囲オブジェクト

p enum = range.lazy
#=> #<Enumerator::Lazy: 1..Infinity>

p enum_2 = enum.take( 3 )
# ブロック無しなので、Enumerator を戻す。
#=> #<Enumerator::Lazy: #<Enumerator::Lazy: 1..Infinity>:take(3)>

p ary = enum_2.to_a
#=> [1, 2, 3] 配列化(実体化)
0954デフォルトの名無しさん
垢版 |
2022/11/03(木) 08:28:05.36ID:eLF8hBMP
3.11.0 余計なことしやがって > setup.py
0981デフォルトの名無しさん
垢版 |
2023/09/28(木) 02:56:02.23ID:8H7B24z1
      /           :ヽ
    /              :\
   ./            ,,,,;;::''''' ヽ
  /    ,,,,;;:::::::::::::::       __   ヽ
  |   .  __       '<'●,   |
  |.   '"-ゞ,●> .::            |
  |           ::: :⌒ 、      |
  ヽ.      ;ゝ( ,-、 ,:‐、)      |  へーすごいじゃん
   l..            |  |      |
   |        __,-'ニ|  |ヽ_     |
    ヽ:        ヾニ|  |ン"    /__
    .ヽ:        |  l, へ      ::::ヽ,
     l.:`.         / /  , \  /ヽ  ::\
     `、:::::       |    ̄ ̄\/ ノ    :::ヽ
      |::::::      |      ー‐/ /      ::::\
0982デフォルトの名無しさん
垢版 |
2023/09/28(木) 02:57:26.95ID:8H7B24z1
           , -─- 、  , -‐- 、
        ,, -'"     `V     `‐、
      /                 \
    ./                       \
    /                      ヽ
   ./  /                   l  ヽ
  /  / /  / ./ /          l   | .l .lヽ
  |  l. l  /  / / ./ .l    |  |  l  / /  l l.〉   ∧∧∧∧∧∧∧∧∧∧∧∧
   l、 | |  l  / / ./ ./   |.  l  | ./ ./ ./ | |./  <                  >
    l、| | l // ///|   l  / / //// / /   <  見るがいい…         >
    l、l | /l///_/ l  / //_|/_∠| / | /     <  これが厨房が立てた   >
    /⌒ヽ | \ `ー' ゝl  // `ー' /|/⌒v'     <  DQNスレッドだ!       >
    | l⌒l l|    ̄ ̄"//|〉 ̄ ̄ ̄  .|/^_l.l     <  ワハハハハ            >
    ヽゝ(ー| /|   ´ \|       ll ),l'ノ      <                  >
     lヽ_ /  |   ┌───7   /._/          ∨∨∨∨∨∨∨∨∨∨∨∨
     .l/   |     l ̄ ̄ ̄/    / /   ,ノ!
    /       |..   V´ ̄∨   ./ /,.-‐'" .|
    ./   (;;)   |\   `ー‐'´  / /       |
    |     _|_\       /| ./      |
   (|   ,.-‐'"    | \__/  .|/    _,.-─;
   |/    .(;;) |─────┤ _,.-‐'":::::::::/
   ̄         |::::::::::::::::::::::::::::::|^l::::::::::::::::::/
レス数が950を超えています。1000を超えると書き込みができなくなります。

ニューススポーツなんでも実況