X



くだすれPython(超初心者用) その36
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 垢版2018/01/01(月) 20:18:42.82ID:iOcRvNll
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その35
http://mevius.5ch.net/test/read.cgi/tech/1496411341/
VIPQ2_EXTDAT: checked:default:1000:512:----: EXT was configured
0327デフォルトの名無しさん垢版2018/02/11(日) 00:19:42.80ID:h5lI8K+n
さすが遊園地。遊園地レベルぐらいないと分からないんだろうな
これ何しているのか分からんが
dic = dict(zip(keys, values))
こんなシンプルにできるのか
0329デフォルトの名無しさん垢版2018/02/11(日) 00:26:32.68ID:q9UPBdZm
>>326
確かにお前のは完全なる糞レスなんだけど
そんなに卑屈にならん方がいいと思うよ
0330遊園地垢版2018/02/11(日) 00:27:16.70ID:RRTIuu7j
くだすれ だったな。


変数(dic) =(は)  辞書型(dict)宣言の

   zip(複数の順序のある要素に並行して同時にアクセス)

 それは、  (keys配列 と values配列) です。
0331遊園地垢版2018/02/11(日) 00:29:39.64ID:RRTIuu7j
zip例

a=[1,2,3]
b=[4,5,6]

print(list(zip(a,b)))
# [(1, 4), (2, 5), (3, 6)]
0332デフォルトの名無しさん垢版2018/02/11(日) 00:31:52.21ID:MHMFdyK6
for k, vs in itertools.groupby(sorted(zip(keys, values))):
____vsl = list(vs)
____print(k, sum(vsl) / len(vsl))

バーカ
0333遊園地垢版2018/02/11(日) 00:34:34.34ID:RRTIuu7j
zipは複数の順序ある要素に並行して同時にアクセス

 だから、 リスト(配列)の種類(形式)が違ってても大丈夫


zip例2

a=["1","2","3"]
b=[4,5,6]

print(list(zip(a,b)))
# [('1', 4), ('2', 5), ('3', 6)]


返り値がタプルだからww listにしちゃおうって事が有るwww
0334デフォルトの名無しさん垢版2018/02/11(日) 00:34:53.10ID:h5lI8K+n
>>328
>をどう読み取るとその回答になるんだ
俺らのようなくずの超初心者ではレベルが違いすぎて理解できない
0335遊園地垢版2018/02/11(日) 00:36:19.86ID:RRTIuu7j
ああww 確かにww

 平均とか言うから 12月 で割ると 思ってたww
0336遊園地垢版2018/02/11(日) 00:43:16.42ID:RRTIuu7j
給料の平均だから


keys = ['a', 'b', 'c']
values = [10, 20, 30]

values01=[]
[values01.append(i/12) for i in values]

dic = dict(zip(keys, values01))

print(dic)
# {'a': 0.8333333333333334, 'c': 2.5, 'b': 1.6666666666666667}


俺の方が力技なのかwww

itertools.groupby sorted ? ソートしても順番は大丈夫なんか?

誰かww はよww 教えてww
0337デフォルトの名無しさん垢版2018/02/11(日) 00:58:11.04ID:ulm0sQ8V
>>329
いや、お前が釣られたんじゃねーのかと言いたかったんだ。
インターネッツ難しいわ。
300年ROMってくる。
0338遊園地垢版2018/02/11(日) 01:03:33.40ID:RRTIuu7j
俺の知識だと>>332が実行できない。

誰か解説して。

NameError: name 'itertools' is not defined
AttributeError: 'list' object has no attribute 'groupby'


itertools=[] で 取り敢えず定義して、
  list'オブジェクトに 'groupby'属性がありません
ここで躓いてる。
0340遊園地垢版2018/02/11(日) 08:39:56.59ID:RRTIuu7j
>>339 ありり
import itertools が居るんか。
TypeError: unsupported operand type(s) for +: 'int' and 'tuple'

面倒だから降参する。
0341デフォルトの名無しさん垢版2018/02/11(日) 09:02:42.80ID:Lbo8qBAq
>>317
namedtupleの第一引数はサブクラス名?として内部的に使われるものであり、
定義行以降のコーディングには表れないって理解でいいんですかね?
C言語の構造体タグのように、後からコーディングに使うためにあるのかと思ってました
0346遊園地垢版2018/02/11(日) 10:53:33.52ID:RRTIuu7j
>>342

 >>332のコードを実行

それだと、>>332が、どうやって通したのか分からないだろ?
0347遊園地垢版2018/02/11(日) 10:55:21.16ID:RRTIuu7j
形が違うなら、
どうやって、処理を通したのか。
0348デフォルトの名無しさん垢版2018/02/12(月) 17:59:56.24ID:MzkFBckq
リストの中のリストの要素を取り出して、別のリストにしたいのですが、どうすれば良いですか?

例えば

list = [[[1, 2, 1],[1, 1, 3]], [[1, 5, 1], [5, 9, 10]], [[ 100, 25, 1], [ 6, 9, 23]]]

の2番目の数を順番に取り出して、

a =[2, 1, 5, 9, 25, 9]

にしたいのですが…
整数とか文字列だけのリストの操作は
例えば
a[0] で 2 を取り出せるとかで分かるんですが、リストの中のリストの要素を操作する方法がさっぱりで…
0351デフォルトの名無しさん垢版2018/02/12(月) 19:13:09.40ID:MzkFBckq
>>349-350
ありがとうございます!
こんな簡単に出来るとは…
for とか range(len()) とか使ったりして3時間くらい悩んでました…w

本番のHSVにした画像(1500×500)から色相を抜き出す作業をしたらpythonが固まりました。処理が多いんですかね…悩んで書いたコードが全部消えちゃって悲しいですw
0353デフォルトの名無しさん垢版2018/02/13(火) 04:43:34.40ID:CThJWgS6
>>351
pythonは悪くない
お前が糞コード書いたから
0354遊園地垢版2018/02/13(火) 08:31:17.46ID:+eKUuXyG
画像処理は大体、グレースケールにして行うんだけど。
静止画像だから、GPU付け足せば、固まる事も無い。
0355デフォルトの名無しさん垢版2018/02/13(火) 10:11:09.44ID:fgBS1G35
>>352
わざわざありがとうございます!こちらの方が自分的に理解しやすいのでこちらにしよう…

>>354
すみません、取りたいのは色相じゃなくて明度でした
グレースケールでも元の画像でも同じ行程数だから重さも変わらないかなーと思ってそのままやっちゃいましたが、グレースケールの方が軽いんですかね…
何かむしろ作業量が増える気がしてw

今自分はBGRからHSVにして、1ピクセルごとの明度を抜き出そうとしてました
そのままのサイズでやると、確認のためリストを吐いてもらうときに固まるので、1/10のサイズにしましたがw
1万近い要素を抜き出すことになります
0356遊園地垢版2018/02/13(火) 10:31:24.02ID:+eKUuXyG
グレースケールなら通常画像の1/3で済む。
1万処理で固まるPCは画像処理に向いてないんじゃない。
0357デフォルトの名無しさん垢版2018/02/13(火) 11:12:46.98ID:fgBS1G35
>>356
あ、そうなんですね…グレーでも明度はそのままだしグレースケールにしてみます!ありがとうございます!

あ、リサイズ前の処理はたぶんもっと多いです
ピクセル数分だから100万くらい処理しますね
まぁインターネットとExcel等をするために買ったPCだから無理もないのかも…
0358デフォルトの名無しさん垢版2018/02/13(火) 12:35:02.76ID:IoOWXwkE
その程度の処理で、固まるPC なら、
JavaScript のブラウザゲームなんて出来ないだろ?

アプリ開発用PC は、コンパイルとかするから、
普通のPC よりも高性能なものがいる
0360遊園地垢版2018/02/13(火) 12:59:57.30ID:+eKUuXyG
ネタ発言として、
100万処理でもRaspberrypi3にMovidius Neural Compute Stick刺した時より、
劣ってたら駄目だろ。


100万処理の書き出しにフリーズするPCってw
108円から324円で売ってるPentium 4
以下の性能って事なになるぞ。
0361デフォルトの名無しさん垢版2018/02/13(火) 13:52:49.62ID:fgBS1G35
ゲームはしたことないので分かりませんが、youtubeを2つ同時に動かしながらFlashを見るとちょっと重いですね
そうなんですね…他言語にも手を出すなら買い換えるかなあ

PCはフリーズしませんよ
pythonが止まるんです
正確には、リストの中身をshellにprintしたら、処理中にIDLE自体が応答なしになります
10分放置してもダメでした
PC自体は普通に動きます
0362デフォルトの名無しさん垢版2018/02/13(火) 13:59:55.20ID:1/hdA564
標準出力への出力は結構重いよ
だからnumpyやpandasのような気が利いたライブラリは、データが増えすぎると省略表示する
0363デフォルトの名無しさん垢版2018/02/13(火) 14:51:53.64ID:IoOWXwkE
Python 内でメモリオーバーとか、
プログラムにバグがあるとか、
大量のデータをコピーしてるとか

何もプリントせず、プログラムの最後まで到達したかどうかだけを確かめれば?

たぶん、Python ではなく、君の勘違い
0364デフォルトの名無しさん垢版2018/02/13(火) 19:15:03.17ID:hE+D2prK
無限ループ作ってそうな気がするけど
0365遊園地垢版2018/02/13(火) 19:32:04.19ID:+eKUuXyG
テキスト書き出しに,print()なんて使わない。
確認のprint消して、ファイル書き込み。

それでも、軽量のIDLEが固まる事は無いけどな。

○ pythonエディターのIDLEが固まる
× pythonが固まる

標準出力関数 print さえ、消したらどうにか成るだろう。
0366デフォルトの名無しさん垢版2018/02/13(火) 21:26:04.89ID:fgBS1G35
>>362-365
そんな仕組みが…print がだめみたいだったですね
1/10の画像サイズで成功したプログラムを元のサイズに直して実行したら成功しました

皆さんのお陰で当初の目的は無事果たせました
ありがとうございます
初心者とはいえ、たった50行に3日もかかるとか雑魚過ぎですなw
0367遊園地垢版2018/02/13(火) 22:01:48.22ID:+eKUuXyG
優秀すぎ。
俺なんて、読み込むモジュール1つ増やしたら3行で一日掛かってる。
0368デフォルトの名無しさん垢版2018/02/13(火) 22:04:34.16ID:6NbXP/1F
なんや100万処理てw100万石みたいやなwww
0369遊園地垢版2018/02/13(火) 23:10:55.90ID:+eKUuXyG
10年前のPCで1億の処理回したら7分掛かった。

for i in range(100000000):
□print(i,end='')
#100000000回
#402.4338073730469[sec]
print(402/60)#6.7分
0370デフォルトの名無しさん垢版2018/02/15(木) 00:06:13.06ID:4IR3nEq8
教えてください、
pythonに、
sudo pip install 〜
こういう文字で始まる、
ライブラリを、インストールしたいのですが、
コマンドプロンプトに、コピーしても、
sudoは、内部コマンド外部コマンド〜
みたいな、エラーがでてインストールできません、
sudo pip こんなライブラリをどうやったら、インストールできますか?
0372デフォルトの名無しさん垢版2018/02/15(木) 00:24:38.81ID:4IR3nEq8
PCにインストールしたいんですが、
OSはwindows7です、
sudo pip〜のライブラリを、どうやったらインストールできますか。
0374デフォルトの名無しさん垢版2018/02/15(木) 00:44:22.38ID:15PIIn7q
WindowsならまずAnaconda入れろ
そしてAnacondaから絶対に出るな
Python関連のインストール操作はすべてAnacondaだけで行え
0375デフォルトの名無しさん垢版2018/02/15(木) 03:52:47.14ID:HRhAawjm
マジレスすると、WindowsでのpipはPowerShellかコマンドプロンプト使ってsudo無しで入れられる
PowerShellとかのアイコン選択時に右クリックして「管理者で実行」がsudoの代わり
> pip install 「モジュール名」

入れるモジュールによってはVisualStudioとWin10SDKがないとビルド出来ないし、パス設定も面倒だし、
Python3.6系だとUnicodeDecodeErrorでビルドに失敗したりする

初心者で全く意味が分からなければ、whl形式のファイル落としてきてオフラインインストールするか、
他の人のアドバイス通りAnaconda環境に変えた方が楽だと思う
0376デフォルトの名無しさん垢版2018/02/15(木) 05:12:30.34ID:NCxYQEU4
初心者の学習用ならvisual studio入れた方がいいと思うよ
インストーラでanaconda入るし
interactiveの補完が優秀だから
0377デフォルトの名無しさん垢版2018/02/15(木) 12:05:36.58ID:ewI90HZW
years=[“2015-04-11”,“2016-12-22”]
みたいなリストから西暦の下二桁のリストを作成するとき
pat=r‘[\d]{2}([\d]{2})‘
tes=[re.findall(pat,i)[0] for i in years]
ってやってるんですけど、なんか違和感があります(欲しい形は出てくる)
本当はどうやるのがベターなんでしょうか
0378遊園地垢版2018/02/15(木) 12:42:58.62ID:DdWb+fDC
years=["2015-04-11","2016-12-22"]
for i in years:
□print(i[2:4].split('-'))

データ型がソレなら正規表現はいらないんじゃねえ?
0379デフォルトの名無しさん垢版2018/02/15(木) 12:44:29.59ID:4lKXUWzM
sudo は、Ubuntu などの、Linux。
Windows, Mac, Linux など、OS の種類もわからない人には、プログラム開発は無理

Windows10 なら、WSL で、MS Store から、Ubuntu 16.04 を導入すると、
最初から、Python 3.5 が入っている

君のような素人なら、Windows7 なら、Anaconda にこもって、
それ以外のパッケージマネージャーを使わないようにする

VirtualBox, Vagrant で、Linux を使うとか、全くわからないだろ?
ls, cd, bash とか、Linux のコマンドを知ってるか?
0381遊園地垢版2018/02/15(木) 12:47:23.16ID:DdWb+fDC
連結したのが欲しいなら、適当な配列tesにでも突っ込めば良い。
0382遊園地垢版2018/02/15(木) 12:51:22.57ID:DdWb+fDC
お前、将来ハゲるな。
0384デフォルトの名無しさん垢版2018/02/15(木) 12:53:37.41ID:g5ZKDDcS
もの言うハゲ
0385デフォルトの名無しさん垢版2018/02/15(木) 12:55:09.77ID:4lKXUWzM
>>377-378
require 'date'

d = Date.parse('1993-02-24')
d.year #=> 1993

Ruby なら、Date 型に変換できる。
Python にも、同様のクラスがあるだろ
0387遊園地垢版2018/02/15(木) 13:07:18.42ID:DdWb+fDC
一般人の昼休みはオワリだな。
おつーーーwww
0388370垢版2018/02/15(木) 14:10:07.04ID:4IR3nEq8
githubから、
ZIPでダウンロードしてきて、
pythonで作った、pyプログラムとかがあるところに、
ファイルおいたら、ライブラリ使えるようになりました、
ありがとうございました、
少し成長しました!
0389デフォルトの名無しさん垢版2018/02/15(木) 14:18:24.86ID:eTKG3ZZ8
>>377
import datetime

years = ['2015-04-11', '2016-12-22']
dates = [datetime.datetime.strptime(year, '%Y-%m-%d') for year in years]
lowwer_digits_of_years = [date.strftime('%y') for date in dates]
0390遊園地垢版2018/02/15(木) 14:57:38.79ID:DdWb+fDC
>>389
まあ、真面目に書くならコレやな。
0394デフォルトの名無しさん垢版2018/02/16(金) 01:14:52.16ID:Yz3zJ/9Z
プログラム全体を、
指定回数繰り返すにはどうしたらいいですか?
0395デフォルトの名無しさん垢版2018/02/16(金) 06:37:00.42ID:2VV1tK2j
>>362
重いならJuliaに乗り換えよう。
0399デフォルトの名無しさん垢版2018/02/16(金) 09:45:57.06ID:Yz3zJ/9Z
>398
シェルスクリプトっていうのがあるのか、
ありがとお。
0403デフォルトの名無しさん垢版2018/02/16(金) 18:49:00.87ID:GMHRcYNg
いっぱいある
0405デフォルトの名無しさん垢版2018/02/16(金) 19:30:31.00ID:OT98fh5E
Pythonはオブジェクトの種類が多すぎて困る
イテラブルとイテレータの違いを説明できる人いる?
ていうかイテラブルって繰り返し可能っていう意味の形容詞だと思ってたわ
0406デフォルトの名無しさん垢版2018/02/16(金) 19:42:42.63ID:ERz9QjBU
>>405
ある程度Pythonでプログラム作成できる初級者レベルの奴なら当然できないと駄目だろうが、
でも、ここは超初心者が大多数だから出来る奴は少ないんじゃないのかな

遊園地なら余裕でイテラブルとイテレータの違いを説明できるから期待して待て
0407デフォルトの名無しさん垢版2018/02/16(金) 19:56:24.32ID:WNml02Hz
iter()で返ってくるオブジェクトがiteratorで
iter()によってiteratorを返すようなオブジェクトつまり__iter__()か__getitem__()を実装するようなオブジェクトがiterable objectってことじゃないの
つまり[1, 2, 3]はiterable objectで
iter([1, 2, 3])がiteratorだろう
0408デフォルトの名無しさん垢版2018/02/16(金) 20:27:54.04ID:MSGqnnUk
俺らのような超初心者は
__iter__(),__getitem__(), __next__()のようなのを使うようなことしないだろう
0409デフォルトの名無しさん垢版2018/02/16(金) 20:28:23.55ID:T+iGynCY
つまりどーゆーことだってばよ?
0410デフォルトの名無しさん垢版2018/02/16(金) 20:35:11.53ID:Yz3zJ/9Z
シェルスクリプトなのか分からないけど、
import os
for a in range(100) : os.system('python test.py')
これで、必要な回数プログラム実行できるようになった。

このループを途中で終了したいときは、
どうやればいいんだろ?
PyCharmてやつで、プログラム実行してるけど、
これを、いきなり閉じちゃうやりかたでもいい?
0411デフォルトの名無しさん垢版2018/02/16(金) 20:37:12.80ID:MSGqnnUk
>>409
このスレでは上級者の>>407にしたって、ことじゃないの、だろう
レベルでしかレスできない。
つまりこのスレではよく分からん、さっぱりわかりませんレベルと言うこと
(自信をもってちゃんと用語の説明が出来るレベルにはないと)
0412デフォルトの名無しさん垢版2018/02/16(金) 20:39:23.63ID:bV6azCnv
知らずに使ってる
0413デフォルトの名無しさん垢版2018/02/16(金) 20:48:05.65ID:MSGqnnUk
>>412
超超初級レベルの俺だって
for X in YYYY
なんかで、イテラブル・イテレータとかが関係している(?)のを使っているからな
0414デフォルトの名無しさん垢版2018/02/16(金) 21:20:06.11ID:WNml02Hz
>>409
for i in iterable:
みたいな文は実際にははじめにiter(iterable)が呼ばれて
返ってきたiterator(itとする)に対して
StopIteration例外がraiseされるまでnext(it)を呼び出しその結果をそれぞれiに束縛するという動作をする
なので普段意識しないでもiteratorは使っている

そう考えるとiterable objectとiteratorが一緒でもいいような感じがするし
実際generatorはiterableでありその上iterableでもある
ただiterableとiteratorを分離してクラスの肥大化を防ぐためにそういう仕様になってるんじゃないか
0415デフォルトの名無しさん垢版2018/02/16(金) 21:38:25.20ID:WNml02Hz
あとiteratorとiterableを分けることで複数回の反復が可能になるってのがあるな
rangeはiterable objectだけどiteratorではないから
r = range(100)
for i in r:
____print(i)
for i in r:
____print(i)
はできるが
generatorはiterable objectであり自分自身がiteratorだから
g = (i for i in range(100))
for i in g:
____print(i)
for i in g:
____print(i)
は無理
0416デフォルトの名無しさん垢版2018/02/16(金) 21:41:13.26ID:T+iGynCY
マジレスするとforの仕様ぐらい俺でも知ってるってばよ
そーゆー事じゃねーだろ
0417デフォルトの名無しさん垢版2018/02/16(金) 21:54:29.76ID:PU4qYOCy
そもそも違いを説明できるかって質問が意味不明
どちらもPythonのオブジェクトであること以外、何も同じじゃないだろ
0418デフォルトの名無しさん垢版2018/02/16(金) 22:00:15.05ID:WNml02Hz
>>416
どういうこと?
iterableとiteratorの違いの話では
>>407でiterableとiteratorの違いは書いた
>>414-415でiteratorのそもそもの意味、iteratorとiterableが別になっている意味について言及したんだけど
0419デフォルトの名無しさん垢版2018/02/16(金) 22:59:19.75ID:Yz3zJ/9Z
PyCharmのツールバーに、
停止ボタン発見した!
プログラム途中で辞める時は、このボタン押せばいいのか。
0422デフォルトの名無しさん垢版2018/02/16(金) 23:25:21.33ID:S3mlGk95
>イテラブルとイテレータの違いを説明
イテラブルとイテレータについてきいているのであって
Pythonでイテラブルやイテレータをどう実現するのか聞いているんじゃないんじゃないのか
俺自身、イテラブルやイテレータはほとんどわからん。
0423デフォルトの名無しさん垢版2018/02/16(金) 23:41:08.50ID:zuV+/SF8
ぶっちゃけ「オブジェクトの種類が多すぎ」という点からして要領を得ない
iterableもiteratorもPythonドキュメントの用語集に明記されているし
データモデルの特殊メソッド名なんか単なるインターフェイスに過ぎないだろう
0424デフォルトの名無しさん垢版2018/02/17(土) 00:05:27.82ID:srN4h2h/
どの言語でも初心者スレでいきなりiterator持ち出してドヤる上級者がいるよね
みんな巣に帰れー
0425デフォルトの名無しさん垢版2018/02/17(土) 00:17:49.35ID:PRSXaLoF
いやみんなお前程いろいろな初心者スレに精通してる訳じゃないから同意を求められてもw
0427デフォルトの名無しさん垢版2018/02/17(土) 00:36:00.95ID:PRSXaLoF
>>426
突然何言ってんのアスペ君?
■ このスレッドは過去ログ倉庫に格納されています

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