Pythonについて(アンチ専用)

■ このスレッドは過去ログ倉庫に格納されています
2008/02/21(木) 10:24:06
Pythonが嫌いな人のためのスレッドです。

■関連スレ
Rubyについて(アンチ専用) Part002
http://pc11.2ch.net/test/read.cgi/tech/1200210768/
2014/01/02(木) 10:01:32.67
pythonの関数とメソッド入り混じってるのは本当に気持ち悪い
メソッドで統一しろと
2014/01/03(金) 15:10:42.36
Rubyになれると他の言語の括弧の入れ子が書きづらい上に見づらくてしゃーない
2014/01/04(土) 18:11:35.86
>>794
http://python.rdy.jp/wiki.cgi?page=FAQ#p10
2014/01/05(日) 00:53:12.92
>>796
関数で統一されてるのがPythonでしょ
2014/01/07(火) 17:09:38.10
何故メソッドを廃して読みづらく書きづらい関数を用意するのか
謎である
2014/01/07(火) 22:22:08.01
元々、Pythonは手続き型スクリプト言語として設計されて誕生したからね
そして、後からオブジェクト指向や関数型の特性を「接ぎ木」した

この「接ぎ木」は別段に変な事でも何でもなくて、
手続き型言語Cにオブジェクト指向を「接ぎ木」したC++が代表例だし、
最近はJavaに関数型のラムダ式が「接ぎ木」されようとしている
またC++やJavaでは、後から総称型が「接ぎ木」されてきた

Pythonは、これからも進化し続けるであろう
標準ライブラリの後方互換性を捨て去り、
たとえ(過去にもあった)Python 3.x から 4.x への世代間断絶があろうとも、
世界中のプログラマは新バージョンへと華麗に移行していく
(技術レベルの低い、日本のPythonプログラマは置いてきぼりかな....)
2014/01/08(水) 17:21:21.57
> Pythonは手続き型スクリプト言語として設計されて誕生したからね
よくRubyユーザーはこういうんだけど、
そんな事実はどこにもないから。

> たとえ(過去にもあった)Python 3.x から 4.x への世代間断絶があろうとも、
いや、断絶してないから。
sixみたいに違いを吸収するライブラリまであるし。
数年置きに互換性がなくなる某スクリプト言語と違って
Pythonが後方互換を切ったのは20年で1回だけだ。
つーか、Cですら初期のK&Rの頃とは文法が違う。
2014/01/08(水) 17:38:51.66
20年も開発してたか?
2014/01/08(水) 17:46:20.68
>>802
>> たとえ(過去にもあった)Python 3.x から 4.x への世代間断絶があろうとも、
>いや、断絶してないから。

これは、Python 2.x と同 3.x の世代間に存在する、
標準ライブラリ互換性の断絶ではないのかな?

> 43 名前: デフォルトの名無しさん Mail: 投稿日: 2014/01/08(水) 17:35:05.69
> ちなみに、python2と3でmap関数の返り値違う
> python2はリスト型
> >>> type(map(add, a))
> <type 'list'>
> python3はmap型
> >>> type(map(add, a))
> <class 'map'>
2014/01/08(水) 17:50:33.23
>>802
もう一つの(過去にあった)標準ライブラリ互換性断絶の例

> 940 名前: デフォルトの名無しさん Mail: sage 投稿日: 2013/12/31(火) 03:44:40.65
> >>939 エラーにならなくなった理由は別にある。
>
> 2.x
> range -> リストを作る。OverflowErrorでなくとも、大きなメモリを確保しようとして
> MemoryErrorになることもなる。
> xrange -> range型のオブジェクトを返す。
> rangeオブジェクトの各属性は 構造体で (Cの)long型で宣言されてるので、値が範囲外だと
> OverflowError
>
> 3.x
> range -> range型のオブジェクトを返す。rangeオブジェトの各属性の型はPyObject。
> pythonの数値(多倍長整数)を持つようになったので、2.xの時の制限はなくなった。
2014/01/08(水) 17:58:26.59
>>802
>よくRubyユーザーはこういうんだけど、

Rubyの話題はスレ違い

Rubyの話がしたいなら「Rubyについて(アンチ専用)」へ
Python vs. Ruby が希望であれば、バトロワスレへ
2014/01/08(水) 18:26:01.04
Python関連スレをちょっとでも覗けば、
序盤から終盤まで 2.x or 3.x の話題だらけじゃん。
これでもPyhtonの後方互換性に問題無しと言えるなんて、
頭がおかしいんじゃないのかなあ....。
2014/01/12(日) 18:23:48.38
なぜ多くのプロジェクトがPythonの古いバージョンをサポートし続けるのか
ストーリー by headless 2014年01月12日 12時55分
http://developers.slashdot.jp/story/14/01/11/2115245/
809デフォルトの名無しさん
垢版 |
2014/01/17(金) 07:48:18.21
ペコ「ロバwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww」
2014/01/17(金) 08:13:37.27
>>795
おれインデント自信が無いよ。
そんな1段なら、わかるけど、実際は、もっともっとふかいのだ。
んなもんわかるわけないよ。みんなどうやってるんだろう?
2014/01/17(金) 08:14:46.62
Python用にかきかえなければならないとおもうと…いやんなるよ
将来のためにそうするべきか。Pythonをあきらめるべきか
2014/01/18(土) 02:49:24.12
>>810
書く時は、エディタのアシスト任せ。後でツールで一括して自動整形。
2014/01/18(土) 14:57:24.86
>>810
インデントの深さを表示できるエディタを使うとか
いくらでもやりようはあるでしょ
2014/01/18(土) 21:25:44.40
python初心者だけど面白いよ面白い!でもpythonerが排他的っぽい;;
2014/01/18(土) 23:22:11.28
代入演算子が値ではなくてリファレンスの代入という仕様はハマるな。
みんな慣れてるの?
他の言語と基本的なことが違い過ぎる。
2014/01/18(土) 23:43:51.88
それ Python に限った話じゃないよ
2014/01/19(日) 05:38:49.85
Pythonは他の言語からの人がはまる仕様が結構ある。
デフォルト引数が評価されるタイミングとか。

FAQに纏まってるので、早めに目を通すといいよ
2014/01/19(日) 21:58:13.83
オブジェクトを指す変数がリファレンスだなんて、ほとんどの言語であたりまえだわ。
むしろポインタを生で扱わないといけないので、明示的にデリファレンスをしないと
いけない、CとC++のほうが例外的。

PHPは、何も考えてない言語仕様だから変なことになってるけど、まぁPHPだからw
2014/01/19(日) 23:35:53.16
>代入演算子が値ではなくてリファレンスの代入という仕様はハマるな。

これは、割とどの言語でも繰り返されてきた話題なんだけど、
言語間での"リファレンス/参照"という語句の、食い違いによる説明の混乱というものがあって

C++で言う(alias的な機能の)"リファレンス/参照"は、Pythonにはなく、
C/C++の語句で言うなら、Pythonでのオブジェクトのリファレンスとは、
単に"オブジェクトの構造体を指すポインタの値"。
2014/01/20(月) 15:04:22.06
Aという言語を使ってきた人がBという言語を使い始めた時にハマるポイント、
なんてのは、どんな組み合わせでもまず間違いなく絶対あるよな。
821デフォルトの名無しさん
垢版 |
2014/02/02(日) 00:08:23.72
インデントの使用で読みやすいとは言うが、糖衣構文やデコレータバンバンだから
実際の現場で使われているアプリのレベルのソースはちょっと分かりにくい

よくある話だが、教育用と実用性を両立させようとするとどうしてもこうなる
2014/02/02(日) 10:27:17.80
教育用として設計されてはいねーし。デマ。
2014/02/03(月) 01:56:08.47
デコレータで読みにくくなるなんて
そりゃ知能が絶望的に足りてないんだよ
2014/02/03(月) 10:25:51.27
デコレータ使わず、糖衣構文を展開した形で書かれていれば理解できるんだい、
(と信じようとしている)。
825デフォルトの名無しさん
垢版 |
2014/02/13(木) 21:58:12.55
時間周りがめんどくさい
2014/03/08(土) 01:00:37.80
日本ではPythonはもう終わりだ...
発展はない
始めるのはゆとりばかり
質問なんかも酷いもんだ
PHPより遥かに劣る
2014/03/29(土) 23:09:40.53ID:O49NFKnh
osとshutilに分かれてる意味がわからない。
日付が使いにくい。
lenがオブジェクトのメンバに無いのがおかしい。
absがmathじゃないのはおかしい。


はじめたばかりだけど、ざっと見てなんかライブラリがとっ散らかってる印象。
2014/03/30(日) 11:06:16.32ID:Ubp7wCfs
気になるのは最初だけだから
通過してしまえば一瞬で忘れられる
そんな小さいことにいつまでも構ってられるほど python の世界は狭くはない
安心して使い続けるがよい
2014/03/30(日) 13:08:26.22ID:uSRubpe1
ライブラリがとっ散らかってると、マニュアル引くとき困るんだが。
このくそライブラリのせいで学習曲線絶対急になってるよね。イラつくわ。
2014/03/30(日) 20:41:33.71ID:szVVotNM
sysとosとか、きちんと意味があって分けられているけどな。

なんでもグローバル名前空間にぶち込んであるのが好きならPHP使ってろよw
2014/04/09(水) 23:19:31.82ID:wiNih1s9
また始まった
2014/05/01(木) 23:27:51.38ID:WbJRLfy+
> lenがオブジェクトのメンバに無いのがおかしい。
__len__メソッドが代わりにあるから使えよ。
ちなみにlen関数がやってくれてる型チェックも自前でやれよ。
2014/05/02(金) 22:47:27.13ID:WJNK/tJJ
型チェック?なぜそんなことをしなければいけないのか
2014/05/03(土) 09:45:39.59ID:gqLjB/uh
流石 __len__ すら知らずにアンチを気取るマヌケは言うことが違うなw
2014/05/04(日) 13:01:51.00ID:Dz1meMUl
なんかガキの罵倒スレになってきたな。
836デフォルトの名無しさん
垢版 |
2014/08/27(水) 21:38:43.96ID:+mS2YVhy
外部関数とメンバ関数を一々覚えんのがめんどいよな
837デフォルトの名無しさん
垢版 |
2015/01/25(日) 09:57:22.57ID:wuFk28jJ
Pythonってリスト内包表記が中途半端で使いにくい。

array = [1, 2, 3, 4, 5]
[x*2 for x in array if x<3]
これはmap とfilterの組み合わせで、プログラミング言語として考えたらこんな複雑な構文は面倒くさいだけだし、
x*2 for x の部分をlambdaだと考えたら仮引数が後ろに来ていて非常に読みにくい。

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[c*2 for c in r] for r in matrix]
数式に近い書き方なんだと考えたら考えたで、行列のような多次元データ構造を扱うには
内包表記をネストしないといけなくなって複雑になる。結局何をやるにしてもnumpy頼みになる。
2015/01/25(日) 10:16:36.81ID:Z3bPH+iB
Pythonの内包表記が中途半端ってどういうこと?
Haskellの内包表記も似たようなもんだよ
それに慣れると(Haskellにおいてすら)mapやfilterより読みやすい

[x * 2 | x <- array, x < 3]
map (* 2) $ filter (< 3) $ array
839デフォルトの名無しさん
垢版 |
2015/01/25(日) 10:20:26.56ID:JhgO84F7
>x*2 for x の部分をlambdaだと考えたら仮引数が後ろに来ていて非常に読みにくい。

そんな香具師いるんかね
むしろ
[2*x for x in array if x<3]
とかのとき
[('%s'*x) for x in array if x<3]
と解釈されるはずだと思うところが
ひょっとすると
['%s'%(x for x in array if x<3)]
の可能性も捨てきれないと思ってしまう
840デフォルトの名無しさん
垢版 |
2015/01/25(日) 10:21:40.81ID:JhgO84F7
なんか切り貼りしてたらおかしくなったので訂正

むしろ
['%s'%x for x in array if x<3]
とかのとき
[('%s'%x) for x in array if x<3]
と解釈されるはずだと思うところが
ひょっとすると
['%s'%(x for x in array if x<3)]
の可能性も捨てきれないと思ってしまう
2015/01/25(日) 11:10:24.86ID:wuFk28jJ
>>838
数式に親しくないプログラマにとっては「今のところ」後者のmapとfilterで平凡に書く方が分かりやすいと思うけどな。
Haskellでは後者の書き方でも色々と非凡になるけどw
(今のところってのは、昔はそもそも無名関数自体一般的じゃなくてループの方が分かりやすい時代だった。
今は無名関数くらい誰でも使う。何が分かりやすいかも時代で変わってくるから、時代に合わせたプログラミング大事)

本題。中途半端って言ったのは、そこじゃなくて。
今、内包表記を苦もなくスラスラ読めるプログラマってどんな奴だ?
→数式を読めるプログラマだろ
→数式を読めるプログラマはどんなプログラムを書く?
→数学の問題を解くプログラムだろ
→数学の問題をプログラミングするなら、行列の各要素を二倍するなんてこう書きたいだろ(Rのように)
matrix*2
842デフォルトの名無しさん
垢版 |
2015/01/25(日) 11:28:13.18ID:JhgO84F7
>数式に親しくないプログラマ

そんな香具師いるんかね
843デフォルトの名無しさん
垢版 |
2015/01/25(日) 11:30:30.53ID:JhgO84F7
>>841

>→数学の問題をプログラミングするなら、行列の各要素を二倍するなんてこう書きたいだろ(Rのように)
>matrix*2

それこそ numpy でいいやん
2015/01/25(日) 11:35:09.48ID:U0GW9T6b
多分日本語的に読みづらいんだと思うよ。結果が先に来るから。
845デフォルトの名無しさん
垢版 |
2015/01/25(日) 11:37:21.13ID:3PovQon7
日本で産まれた(ω) Ruby にも後置 if とかあるのに
2015/01/25(日) 11:44:25.36ID:U0GW9T6b
Ruby は大概書きたい方法があるじゃん
2015/01/31(土) 08:33:30.81ID:xuw3avh8
いくらPythonにへびネタが多いとはいえこういう表紙は駄目だろう
冗談抜きで表紙が気持ち悪くて手に取れないレベル
これが原因でPythonあるいは授業に悪い印象しか残らなかったら学生が可哀想
http://www.skylit.com/mathandpython.html
https://www.packtpub.com/big-data-and-business-intelligence/learning-python-data-analysis
848デフォルトの名無しさん
垢版 |
2015/01/31(土) 08:37:29.46ID:YMt5PyZL
カバー付ければ良いだけじゃん
全編写真集なら嫌だけど
2015/01/31(土) 09:24:12.94ID:fHA0y3z4
ジャポニカ学習帳みたいに表紙は植物だけにすればいい
O'Reillyも
850デフォルトの名無しさん
垢版 |
2015/01/31(土) 09:34:03.69ID:YMt5PyZL
ああ
アンチすれだったか
いつも調子で書き込んでたゎ
http://ecx.images-amazon.com/images/I/518wm5u3TjL.jpg
http://www.chrischeng.com/wp-content/uploads/2012/11/Python-271x300.jpg
2015/01/31(土) 10:29:16.24ID:Q5cOubfa
アンチじゃないが表紙ひどいwww
2015/01/31(土) 12:23:49.26ID:Klh2e7Hk
本当だ、何でこんなリアル志向
2015/01/31(土) 12:37:18.71ID:dgL1phRR
>>847
俺は別に平気だけど、もはや何の本か分からんなw
2015/02/04(水) 13:42:49.77ID:5pZRcUKP
>>842
いまどき香具士って・・・
2015/06/28(日) 15:54:47.88ID:XDTH7fdP
Pythonって単純な後置ifが使えないみたいだけど
それだとそのためだけにif文でインデントがひとつ深くなって
インデントが重要な言語仕様にとっては欠陥なんじやないかな
import thisでもネストしてるよりフラットがいいって言ってるんだし
856デフォルトの名無しさん
垢版 |
2015/06/28(日) 20:53:17.33ID:92vB0cyt
hoge = a if b else c
2015/06/28(日) 21:07:18.70ID:lxz6gjyn
Python使ってもクソコード書く奴はクソコードを書く。
言語変えたからって良いコードにはならない。
2015/06/28(日) 21:07:55.71ID:lxz6gjyn
hoge = a if b else c
hoge = b ? a : c

後者のほうが短くて可読性が高い。
2015/06/28(日) 21:19:54.87ID:I6pGNCnf
elseが必要な場合ばかりじゃないじゃないですか
単純な後置ifって書いたのはそういう意味です
単純な条件判定だけすれば十分っていう場合
その「単純な〜だけすれば十分」っていうのと
仕様上不可欠なインデントを要求するのがバランスとれてない感じがするんですよね
まあ単純にインデント増えるとコードがわかりにくくなるなるっていうのが
文句言ってる理由なんですけど
2015/06/28(日) 21:24:02.23ID:lxz6gjyn
Pythonのインデントでブロックを表現するというのは
面白いが、メリットはない。
2015/06/28(日) 21:25:10.72ID:I6pGNCnf
いや逆だな
コードの分かりにくさなんていろんな理由で発生するからこの件だけ文句言う理由がない
「単純な〜だけすれば十分」っていうのと
仕様上不可欠なインデントを要求するのがバランスとれてない感じがする
っていうのが文句言いたくなった本当の理由です
なんとなくすっきりしないという
2015/06/28(日) 21:27:03.42ID:lxz6gjyn
インデントでブロックを表現するというのは
デメリットも有る。

例えばデバッグプリントするとき、他の言語なら、わざとインデントを外して
目立つようにできるが、Pythonだといちいち揃えないといけない。
消す時面倒くさい。

また試しに他の部分からコードを持ってきたり、
コードの順番を入れ替えてみたりする時、
ちゃんと揃えないと動かない。

仮のコードが書きにくい。
2015/06/28(日) 22:07:47.22ID:92vB0cyt
>elseが必要な場合ばかりじゃないじゃないですか

大抵のケースでは
hoge = c
hoge = a if b

hoge = a if b else c


あるいは
hoge = a if b else None
864デフォルトの名無しさん
垢版 |
2015/11/07(土) 17:03:07.54ID:rKOE1Rwz
あほちゃう
2015/11/07(土) 20:16:30.77ID:J5i3UOGI
あほちゃう
2015/11/08(日) 15:23:00.76ID:QYMRsb+2
どうでもいいことで文句言ってるだけにしか思えん。
867デフォルトの名無しさん
垢版 |
2015/12/04(金) 13:08:41.19ID:cIAl+Zzr
re内でしか正規表現使えないの不便すぎ
2015/12/04(金) 15:10:18.61ID:prxSfFNA
そうでもない
2015/12/15(火) 09:34:12.26ID:GmzcEDm2
D の std.regex に似てる
870デフォルトの名無しさん
垢版 |
2016/08/07(日) 16:59:44.06ID:nuDQx96v
そうでもな
2016/08/08(月) 00:00:14.29ID:xVTmsFhH
インデントするかしないかなんて書き手に任せればいいじゃん。
構造が分かっているなら自動整形のツールだって作れるわけだし。

なんかそんなところまで縛って、基本的なところでインデントが
プログラムの文法に縛りを与えるってなんか嫌な設計だよね。
2016/08/08(月) 17:57:42.17ID:1QM6yHGZ
前はそう思ってたけど
実際書いてみると
問題になるケースはほとんどないよ
君も外からgdgd言ってないで書いてみろ
2016/11/09(水) 19:52:52.94ID:em+Lyjx7
あー、でも切り貼りしずらいというのはあるね
ある部分だけ外に出したいとか、逆に括りたいときに、ちょっと手間
インデントが一意に定まらないから、オートインデントしずらいんだよね
2016/11/09(水) 23:10:35.98ID:gLDp2Y3W
>>873
ブロック単位でインデントの深さは切り離せるから違ってても良いんだわ

つまり
「ある部分だけ切り離す」
っていうのは全然問題にならない
2016/11/09(水) 23:11:57.92ID:gLDp2Y3W
>逆に括りたいとき

この場合は
if True:
って書いてしまえばほとんどのケースで解決する
2016/12/21(水) 20:50:38.88ID:RJ5TtbA5
Pyconのあのおっさんいい加減うざい
877デフォルトの名無しさん
垢版 |
2016/12/22(木) 00:35:33.27ID:J1Y5kwjp
うむ
878デフォルトの名無しさん
垢版 |
2017/08/25(金) 15:07:32.02ID:0nrK3Ckt
Visual Studio 2017におけるPythonサポート
http://www.atmarkit.co.jp/ait/articles/1708/18/news028.html
http://www.atmarkit.co.jp/ait/articles/1708/18/news028_2.html
879デフォルトの名無しさん
垢版 |
2018/05/23(水) 21:51:31.70ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

2UWPR
880デフォルトの名無しさん
垢版 |
2018/07/05(木) 00:10:36.37ID:RfoszcD2
077
881デフォルトの名無しさん
垢版 |
2018/08/31(金) 17:46:44.07ID:/xTCWZjj
今後 Python使える人増えるでー
学校教育用言語に選ばれたからね
ヨーロッパではPythonが大注目
米国も追従するかは不明
日本は応用が利かないフローチャート風
なんで、日本はいつも行き止まりな道しか選ばないのか
仮想アセンブラのCASLなんて何の役にもたたなかったし
外国の小学生と日本の小学生の格差は広がるばかり
882デフォルトの名無しさん
垢版 |
2018/08/31(金) 18:02:23.50ID:958KuBfY
python使うのはありだけど
日本の学校で教えると
pythonしか使えない人とかも出てきそう
大事なのはそこじゃなくて
アルゴリズムとかなんだけど
どんな言語でも書ける能力を磨くとかそういう発想はなさそう
883デフォルトの名無しさん
垢版 |
2018/08/31(金) 19:05:06.17ID:9BvJl+C0
>>882
そんなもんおまえが気づけた程度の極意なんやから
未来ある有望な子どもたちは当たり前のように気づくやろw
論理的ってこうゆう事やでアホンダラw
884デフォルトの名無しさん
垢版 |
2018/08/31(金) 23:27:44.03ID:N52+Kto5
日本の学校は子供を潰す
延びる芽を摘む教育
885デフォルトの名無しさん
垢版 |
2018/09/01(土) 00:19:19.24ID:MpWrJr2V
>>884
言っとくけどおまえの芽はもとから腐っとったからなw
886デフォルトの名無しさん
垢版 |
2018/09/01(土) 16:47:17.22ID:h137Mfrw
インデントが崩れちゃうとそれだけで構造が読みにくくなる。
整形もプログラムを読解しながらやらなきゃならないので非常に効率が悪い。
2018/09/08(土) 13:20:48.49ID:3pEPHB8S
>>884
子供は教師のマウンティングするための道具でしかないからな。
2018/09/15(土) 15:16:31.17ID:heijdb7v
Pythonって、リストに値を追加する時、配列のような index 番号か、
または、'Hello' などの値を指定して、その値を探して一致した要素
の直前か直後辺りに追加する事は出来ても、C言語のように、
ポインタを指定して、そのポインタの指す要素の直後に追加する
ことは出来ないよね。

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

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

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

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

ポインタの概念が理解しにくい人もいるらしいが、Pythonの方法だと、
どんなにCythonなどでコンパイルしても、アルゴリズム的に
速度は上がらない。
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)


[:] とすることで元のリストのコピーとなり要素の順番を全て取得でき、全ての要素を順番に削除が行える。
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の速度差に繋がる。
891デフォルトの名無しさん
垢版 |
2018/09/15(土) 15:59:11.04ID:AVfR6YnT
>>888
numpy
2018/09/15(土) 17:45:41.50ID:iqED3/RG
【IT】奴隷制を連想させるとして、Pythonで「master」「slave」といった単語が削除される
https://egg.2ch.net/test/read.cgi/bizplus/1536925223/
2018/09/16(日) 02:05:46.60ID:UmczuJY3
>>892
バカだよな。
つっぱねるべきだった。
894デフォルトの名無しさん
垢版 |
2018/09/16(日) 11:17:08.95ID:HF0YmRsW
povertyかと思った
895デフォルトの名無しさん
垢版 |
2019/01/11(金) 14:38:30.97ID:9UT8ehvY
rubyからpythonへ
https://kiito.hatenablog.com/entry/2016/09/20/164134
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。