このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は 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
探検
くだすれPython(超初心者用) その36
■ このスレッドは過去ログ倉庫に格納されています
2018/01/01(月) 20:18:42.82ID:iOcRvNll
2018/01/11(木) 13:55:06.55ID:Rdhkb3Oy
>>48
ありがとうございます
ありがとうございます
50デフォルトの名無しさん
2018/01/13(土) 22:24:55.51ID:BAsP1Vyl 下記のような配列を作ってその中から条件を満たしているものの中で
価格が最大値のものを検索するということがしたいのです。
品目 条件 価格
りんご OK 100
みかん OK 200
れもん NG 300
1.この場合、配列は下記のようなリストを作ればよいのでしょうか?
list=[[りんご, OK, 100], [みかん, OK, 200], [れもん, NG, 300]]
2.上記1.のアプローチが正しいとして、上記リストにおいて、条件がOKのもので価格が一番高いものの
配列の番号(または品目)を取得する方法をどなたかお教えいただけないでしょうか。
(辞書でもリストでも何でも良いのでが上記の表のような配列の裁き方が検索しても見つけられず・・・)
価格が最大値のものを検索するということがしたいのです。
品目 条件 価格
りんご OK 100
みかん OK 200
れもん NG 300
1.この場合、配列は下記のようなリストを作ればよいのでしょうか?
list=[[りんご, OK, 100], [みかん, OK, 200], [れもん, NG, 300]]
2.上記1.のアプローチが正しいとして、上記リストにおいて、条件がOKのもので価格が一番高いものの
配列の番号(または品目)を取得する方法をどなたかお教えいただけないでしょうか。
(辞書でもリストでも何でも良いのでが上記の表のような配列の裁き方が検索しても見つけられず・・・)
2018/01/14(日) 00:20:35.69ID:t0jHIC/R
max関数を調べてみるとよい
2018/01/14(日) 01:00:13.30ID:rilCPocj
>>50
Pythonじゃなきゃダメ?
正直、データベースソフトでやるべき案件だと思う
どうしてもPythonでやるなら、内包表記を使ってリストから
条件に合う要素を抜き出して新しいリストを作り、データを絞り込んで行く
>>> a = [['りんご', 'OK', 100], ['みかん', 'OK', 200], ['れもん', 'NG', 300]]
>>> ok_list = [elem for elem in a if elem[1] == 'OK']
>>> ok_list
[['りんご', 'OK', 100], ['みかん', 'OK', 200]]
>>> max_price = max([elem[2] for elem in ok_list])
>>> max_price
200
>>> name = [elem[0] for elem in ok_list if elem[2] == max_price]
>>> name
['みかん']
あと、list=[[りんご, OK, 100], [みかん, OK, 200], [れもん, NG, 300]] と最初にあったが
変数名にlistなどのPythonに元からあるオブジェクト名そのまんまを使うのは避けよう
エラーの元になる
Pythonじゃなきゃダメ?
正直、データベースソフトでやるべき案件だと思う
どうしてもPythonでやるなら、内包表記を使ってリストから
条件に合う要素を抜き出して新しいリストを作り、データを絞り込んで行く
>>> a = [['りんご', 'OK', 100], ['みかん', 'OK', 200], ['れもん', 'NG', 300]]
>>> ok_list = [elem for elem in a if elem[1] == 'OK']
>>> ok_list
[['りんご', 'OK', 100], ['みかん', 'OK', 200]]
>>> max_price = max([elem[2] for elem in ok_list])
>>> max_price
200
>>> name = [elem[0] for elem in ok_list if elem[2] == max_price]
>>> name
['みかん']
あと、list=[[りんご, OK, 100], [みかん, OK, 200], [れもん, NG, 300]] と最初にあったが
変数名にlistなどのPythonに元からあるオブジェクト名そのまんまを使うのは避けよう
エラーの元になる
2018/01/14(日) 01:32:55.95ID:YcirJyIj
>>52
Pythonスレで Pythonじゃなきゃダメ? ってオイオイだろ
これなんか学校の課題って気がする
list=[["りんご", "OK", 100], ["みかん", "OK", 200], ["れもん", "NG", 300]]
l_OK = [item_OK for item_OK in filter(lambda list_item : list_item[1] == "OK", list)]
#l_OK = [item for item in list if item[1] == "OK"]
print( max(l_OK, key=(lambda item_OK: item_OK[2]) )[0] )
Pythonスレで Pythonじゃなきゃダメ? ってオイオイだろ
これなんか学校の課題って気がする
list=[["りんご", "OK", 100], ["みかん", "OK", 200], ["れもん", "NG", 300]]
l_OK = [item_OK for item_OK in filter(lambda list_item : list_item[1] == "OK", list)]
#l_OK = [item for item in list if item[1] == "OK"]
print( max(l_OK, key=(lambda item_OK: item_OK[2]) )[0] )
54デフォルトの名無しさん
2018/01/14(日) 02:18:12.29ID:yVTJx4nd pandas使え
5550です
2018/01/14(日) 08:27:28.43ID:krdFkWsl2018/01/14(日) 10:39:38.00ID:TwgO/caM
pandasのstr.containsとかって、真偽反転するとき“~”を付けるじゃないですか
この波線って、pythonの側のビット演算子ですか?
strアクセサ用のオプション記号?
x=1
tf=2 in x
print(~tf)
とかで試してみるとT/Fではなく数字が出てくるので、strアクセサ用の機能?
この波線って、pythonの側のビット演算子ですか?
strアクセサ用のオプション記号?
x=1
tf=2 in x
print(~tf)
とかで試してみるとT/Fではなく数字が出てくるので、strアクセサ用の機能?
2018/01/14(日) 13:23:26.45ID:0mtDcMfe
>56
in を使うなら、x=[1]とするべきでは?
また、否定演算子は~でなくてnotを使うべき。
~は、ビット毎の反転をとる演算子。Trueは1、Falseは0とみなして計算されるはず。
in を使うなら、x=[1]とするべきでは?
また、否定演算子は~でなくてnotを使うべき。
~は、ビット毎の反転をとる演算子。Trueは1、Falseは0とみなして計算されるはず。
58デフォルトの名無しさん
2018/01/14(日) 14:50:25.95ID:79VwseEt だれもそんな話はしてないぞ
2018/01/14(日) 15:32:15.53ID:DgdnagvN
>>50
もう解決してるみたいだけど
価格が0または正だと仮定していいなら
print(max(list, key=(lambda x: x[2] if x[1] == 'OK' else -1)))
とすれば要素の抽出とかはなくてもいける
ただし'OK'のものが一件もないと価格が'NG'のものを返すので注意が必要
もう解決してるみたいだけど
価格が0または正だと仮定していいなら
print(max(list, key=(lambda x: x[2] if x[1] == 'OK' else -1)))
とすれば要素の抽出とかはなくてもいける
ただし'OK'のものが一件もないと価格が'NG'のものを返すので注意が必要
6050
2018/01/14(日) 15:34:13.85ID:DgdnagvN > 価格が'NG'のものを返す
価格じゃなくて条件だったわ
価格じゃなくて条件だったわ
2018/01/14(日) 15:57:09.64ID:/4CphuTL
>>56
配列の番号(と品目)を取得するようにしたニダね
list=[["りんご", "OK", 100], ["みかん", "OK", 200], ["れもん", "NG", 300]]
dic_OK = {list_idx:list_item for list_idx,list_item in enumerate(list) if list_item[1] == 'OK'}
list_index = max( dic_OK, key=(lambda dkey: dic_OK[dkey][2]) )
print( 'List index:', list_index )
print( 'Item name:', list[list_index][0] )
配列の番号(と品目)を取得するようにしたニダね
list=[["りんご", "OK", 100], ["みかん", "OK", 200], ["れもん", "NG", 300]]
dic_OK = {list_idx:list_item for list_idx,list_item in enumerate(list) if list_item[1] == 'OK'}
list_index = max( dic_OK, key=(lambda dkey: dic_OK[dkey][2]) )
print( 'List index:', list_index )
print( 'Item name:', list[list_index][0] )
2018/01/14(日) 16:27:06.07ID:/4CphuTL
>>59
ついでに、max()使うとOKフラグ付きの同じ最高価格の物が複数あると困ったニダになるからな
ついでに、max()使うとOKフラグ付きの同じ最高価格の物が複数あると困ったニダになるからな
6350
2018/01/14(日) 16:31:48.67ID:DgdnagvN よくよく考えたらmax()のキーにタプルを返すようにすれば
> 価格が0または正だと仮定していいなら
の制限は要らなかったな
print(max(list, key=(lambda x: ( x[1] == 'OK', x[2]))))
> ただし'OK'のものが一件もないと条件が'NG'のものを返すので注意が必要
の方はそのままだけど
> 価格が0または正だと仮定していいなら
の制限は要らなかったな
print(max(list, key=(lambda x: ( x[1] == 'OK', x[2]))))
> ただし'OK'のものが一件もないと条件が'NG'のものを返すので注意が必要
の方はそのままだけど
2018/01/14(日) 16:33:19.71ID:DgdnagvN
>>62
そこは要件次第でしょ
そこは要件次第でしょ
65デフォルトの名無しさん
2018/01/14(日) 17:34:08.11ID:CiqP7kj22018/01/14(日) 19:43:47.38ID:GEVmZqF5
print({1,2,3})
と実行すると
{1,2,3}
と出力されます。
s1 = {1,2,3}
s2 = {4,5,6}
print(str(s1) + " -> " + str(s2))
と実行しても
{1,2,3} -> {4,5,6}
とは出力されません。
{1,2,3} -> {4,5,6}
と出力するにはどうすればいいのでしょうか?
と実行すると
{1,2,3}
と出力されます。
s1 = {1,2,3}
s2 = {4,5,6}
print(str(s1) + " -> " + str(s2))
と実行しても
{1,2,3} -> {4,5,6}
とは出力されません。
{1,2,3} -> {4,5,6}
と出力するにはどうすればいいのでしょうか?
2018/01/14(日) 20:05:47.59ID:rilCPocj
2018/01/14(日) 20:13:42.00ID:EtO+GVJz
2018/01/14(日) 20:50:44.02ID:ZtH88FLC
formatなり空白をreplaceなりすればいい
2018/01/14(日) 21:01:00.84ID:rilCPocj
>>68
自分の環境(Windows7, Python3.6.3)では最初からスペースが入るからよくわからんね
質問者からの追加説明を待ちたい
>>> print({1,2,3})
{1, 2, 3}
自分の環境(Windows7, Python3.6.3)では最初からスペースが入るからよくわからんね
質問者からの追加説明を待ちたい
>>> print({1,2,3})
{1, 2, 3}
2018/01/14(日) 21:30:58.89ID:0mtDcMfe
{}は、set
setは、順序を保持しない
順序を保持したいなら、[4,5,6]とlistを使うのがよい
setは、順序を保持しない
順序を保持したいなら、[4,5,6]とlistを使うのがよい
2018/01/15(月) 16:27:23.26ID:oyJFiKwa
>>50-65
漏れは、色々な言語で、最大値を持つオブジェクトを取得する、方法を研究しているが、
最大値が複数ある場合に、簡単に取得できる方法は、どの言語にも無い!
どの言語でも、最大値は1つであると、仮定されているから
例えば、Ruby のminmax。
最大・最小値が複数ある場合は、どの要素が取得できるかは、不定です!
漏れは、色々な言語で、最大値を持つオブジェクトを取得する、方法を研究しているが、
最大値が複数ある場合に、簡単に取得できる方法は、どの言語にも無い!
どの言語でも、最大値は1つであると、仮定されているから
例えば、Ruby のminmax。
最大・最小値が複数ある場合は、どの要素が取得できるかは、不定です!
2018/01/15(月) 16:57:20.16
C#のリスト型.Max関数は最大値そのものを返す
んでWhereメソッドでその最大値を持つ要素を抽出する
んでWhereメソッドでその最大値を持つ要素を抽出する
2018/01/15(月) 20:04:38.28ID:dgT2VGvQ
75デフォルトの名無しさん
2018/01/15(月) 20:20:13.07ID:uVak3BOk >>55
>一度条件で抽出してからmax使うのですね
こんなこと(条件を満たすもの全て抽出)はしないで俺様関数を作って
俺様関数中で条件を満たすものピックアップしながらmaxを探すとかするんじゃないのか
>一度条件で抽出してからmax使うのですね
こんなこと(条件を満たすもの全て抽出)はしないで俺様関数を作って
俺様関数中で条件を満たすものピックアップしながらmaxを探すとかするんじゃないのか
2018/01/15(月) 20:27:35.79ID:uVak3BOk
77遊園地 ◆ExGQrDul2E
2018/01/16(火) 01:25:21.93ID:/gUVmc1B 最大値が複数有る時にmax要素を含むモノを返す処理
俺にも教えて。
l=[1,2,2,3,4,5,5,7,8,9,9]
import collections
x=collections.Counter(l)
print(x)
俺にも教えて。
l=[1,2,2,3,4,5,5,7,8,9,9]
import collections
x=collections.Counter(l)
print(x)
78遊園地 ◆ExGQrDul2E
2018/01/16(火) 01:36:02.64ID:/gUVmc1B どうすれば、いいんでちゅかぁ?wwwwwwwwww
ぶひいいいいいいいいいいwwwww ┌(_Д_┌ )┐ ┌(_Д_┌ )┐
from collections import Counter
print( Counter('abracadabra').most_common(3) )
cnt = Counter()
for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
cnt[word] += 1
print(cnt)
あぁ? ああああああああああああ あばばばばばばばばばあwwwww
ぶひいいいいいいいいいいwwwww ┌(_Д_┌ )┐ ┌(_Д_┌ )┐
from collections import Counter
print( Counter('abracadabra').most_common(3) )
cnt = Counter()
for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
cnt[word] += 1
print(cnt)
あぁ? ああああああああああああ あばばばばばばばばばあwwwww
79遊園地 ◆ExGQrDul2E
2018/01/16(火) 03:20:20.16ID:/gUVmc1B 答え合わせのお時間でチュよぉおおおおおwww
ぶひいいいいいいいいいいwwwww ┌(_Д_┌ )┐ ┌(_Д_┌ )┐
import collections
l='abbabacccddeee'
r = collections.Counter(l)
print (r.most_common(2))#取り出す個数wwwwwww
あああああああああああああーーーーーーーーーーwwwwwwwww
取り出す個数を求めるの忘れて待ちたぁああああああwwwwwwww
ぶひいいいいいいいいいいwwwww ┌(_Д_┌ )┐ ┌(_Д_┌ )┐
import collections
l='abbabacccddeee'
r = collections.Counter(l)
print (r.most_common(2))#取り出す個数wwwwwww
あああああああああああああーーーーーーーーーーwwwwwwwww
取り出す個数を求めるの忘れて待ちたぁああああああwwwwwwww
80遊園地 ◆ExGQrDul2E
2018/01/16(火) 04:05:37.35ID:/gUVmc1B はいっ! はいっ!!
「ハイ! ハイ!」 「ハイ! ハイ!」
ぶひいいいいいいいいいいwwwww
「アイィィィ!ポイ!ポイィィィ!」
「んっ! 」 「んっ!」
35歳 「あっ。あっああ。。。」 「あっ。あっああ。。。」
遊園地「ぶひいいいいいいいいいいwwwww」
ぬーぷ 「冬の大空に降り注ぐ彗星」
35歳&ぬーぷ&遊園地「 はいっ! はいっ!! 」
「ぶひいいいいいいいいいいwwwww」 ( ゚д゚ )クワッ!! ヘ(゚∀゚ヘ)アヒャ ┌(_Д_┌ )┐
「ハイ! ハイ!」 「ハイ! ハイ!」
ぶひいいいいいいいいいいwwwww
「アイィィィ!ポイ!ポイィィィ!」
「んっ! 」 「んっ!」
35歳 「あっ。あっああ。。。」 「あっ。あっああ。。。」
遊園地「ぶひいいいいいいいいいいwwwww」
ぬーぷ 「冬の大空に降り注ぐ彗星」
35歳&ぬーぷ&遊園地「 はいっ! はいっ!! 」
「ぶひいいいいいいいいいいwwwww」 ( ゚д゚ )クワッ!! ヘ(゚∀゚ヘ)アヒャ ┌(_Д_┌ )┐
2018/01/16(火) 07:35:11.81ID:4oyR/FiU
pythonがこの先生きのこるには
http://mevius.5ch.net/test/read.cgi/tech/1167996371/
http://mevius.5ch.net/test/read.cgi/tech/1167996371/
2018/01/16(火) 09:23:58.14
なんか怖い人が居るんだけど...
2018/01/16(火) 13:38:54.40ID:1yOH1J8J
Ruby で作った
scores = [1,2,9,2,3,9,7]
results = scores.each_with_object([]).with_index do |(score, ary), i|
if ary.empty? || ary[0][0] == score
ary << [score, i]
elsif ary[0][0] < score
ary.clear
ary << [score, i]
end
end
results.each do |item|
puts "score: #{item[0]}, index: #{item[1]}"
end
出力
score: 9, index: 2
score: 9, index: 5
scores = [1,2,9,2,3,9,7]
results = scores.each_with_object([]).with_index do |(score, ary), i|
if ary.empty? || ary[0][0] == score
ary << [score, i]
elsif ary[0][0] < score
ary.clear
ary << [score, i]
end
end
results.each do |item|
puts "score: #{item[0]}, index: #{item[1]}"
end
出力
score: 9, index: 2
score: 9, index: 5
84遊園地 ◆ExGQrDul2E
2018/01/16(火) 15:50:10.04ID:/gUVmc1B どうしても、言いたい事が有るので、聞いて下さい。
「氣持ちいぃいいいいwwwwいいぃぃいんぽおおおおおおおおおおおwwwww」
>>83
数値のmax要素を取得してるから、もっとも多い要素の複数を返す。
と言う、仕様には使えない。
多い要素を取得のハズが数値MAX取得でNG
https://ideone.com/Cj8JYJ
試験データ型
scores = [1,2,9,2,3,9,7,3,3,2]
返り値
要素 2,3
index 1,3,9 4,7,8
「氣持ちいぃいいいいwwwwいいぃぃいんぽおおおおおおおおおおおwwwww」
>>83
数値のmax要素を取得してるから、もっとも多い要素の複数を返す。
と言う、仕様には使えない。
多い要素を取得のハズが数値MAX取得でNG
https://ideone.com/Cj8JYJ
試験データ型
scores = [1,2,9,2,3,9,7,3,3,2]
返り値
要素 2,3
index 1,3,9 4,7,8
85遊園地 ◆ExGQrDul2E
2018/01/16(火) 15:57:30.63ID:/gUVmc1B 正規表現で実装する方が良いかも。
大丈夫だwっw 俺より凄い奴が出て来て助言してくれるぞwww
ぶひいいいいいいいいいいwwwww ┌(_Д_┌ )┐
大丈夫だwっw 俺より凄い奴が出て来て助言してくれるぞwww
ぶひいいいいいいいいいいwwwww ┌(_Д_┌ )┐
86デフォルトの名無しさん
2018/01/16(火) 16:20:42.45ID:qp2ox4Ew >>78
[('a', 5), ('b', 2), ('r', 2)]
Traceback (most recent call last):
File "C:/Users/banbarori5/myscript.py", line 7, in <module>
cut[word] += 1
NameError: name 'cut' is not defined
[('a', 5), ('b', 2), ('r', 2)]
Traceback (most recent call last):
File "C:/Users/banbarori5/myscript.py", line 7, in <module>
cut[word] += 1
NameError: name 'cut' is not defined
2018/01/16(火) 16:25:25.03ID:ANYFrcmB
まずmaxを求めて
次にmaxと一致するものをリスト内包で抜き出すのが
Python流の思想
同時にやろうとするのはC++の発想なので違う
データベースの副問い合わせみたいなもんだな
次にmaxと一致するものをリスト内包で抜き出すのが
Python流の思想
同時にやろうとするのはC++の発想なので違う
データベースの副問い合わせみたいなもんだな
88遊園地 ◆ExGQrDul2E
2018/01/16(火) 18:39:09.09ID:/gUVmc1B2018/01/16(火) 18:45:08.51ID:1yOH1J8J
>>83
のやり方なら、全要素を1回の走査で済むけど、バグる可能性が高くなるから、
一旦、最大値を求めてから、改めてその最大値を使っている要素を、探した方が良さそう。
ただし、このやり方では、2回の走査になる
のやり方なら、全要素を1回の走査で済むけど、バグる可能性が高くなるから、
一旦、最大値を求めてから、改めてその最大値を使っている要素を、探した方が良さそう。
ただし、このやり方では、2回の走査になる
90遊園地 ◆ExGQrDul2E
2018/01/16(火) 19:06:05.28ID:/gUVmc1B 取り敢えず、動くモノはできた。
誰か 整形 はよぉおおおおおおおおおおおwwwwwwwww
https://ideone.com/nAscvc
もしくはぁああああwwww 誰か書き直してぇええええええええ
誰か 整形 はよぉおおおおおおおおおおおwwwwwwwww
https://ideone.com/nAscvc
もしくはぁああああwwww 誰か書き直してぇええええええええ
91遊園地 ◆ExGQrDul2E
2018/01/16(火) 19:30:01.48ID:/gUVmc1B くだすれPython(超初心者用) その33©2ch.net
914 :デフォルトの名無しさん:2017/05/24(水) 17:14:04.97 ID:rw+7fc+A
>>913
雪風は人間初心者だろ?死ねよ
俺を挑発した奴www 出てこいコノヤローーーーwwww
914 :デフォルトの名無しさん:2017/05/24(水) 17:14:04.97 ID:rw+7fc+A
>>913
雪風は人間初心者だろ?死ねよ
俺を挑発した奴www 出てこいコノヤローーーーwwww
2018/01/16(火) 19:59:16.13
何がしたいのかまとめてくれよ
93遊園地 ◆ExGQrDul2E
2018/01/16(火) 20:14:53.61ID:/gUVmc1B 1.最大値が複数有る時にmax要素を含むモノを全て返す処理
2.要素数が多いモノをindex付きで、全て返す
2のデータ
[1,2,9,2,3,9,7,3,3,2]
2の望む出力
{2:[1,3,9], 3:[4,7,8]}
1のデータ
{2:[1,3,9], 3:[4,7,8],9:[2,5,9]}
1の望む出力
{2:[1,3,9], 9:[2,5,9]}
お願いします。
君とぉおおおおおおおおおおお ちゅーーーしたぁあああうぃいいwwwっw??
あなーーーーたーーーがw0−−−−wwww 好きだからぁあらあらあぁあwww
NOnoooo のんぉおおのぉお とぉおおおおをおをおををっをwww
2.要素数が多いモノをindex付きで、全て返す
2のデータ
[1,2,9,2,3,9,7,3,3,2]
2の望む出力
{2:[1,3,9], 3:[4,7,8]}
1のデータ
{2:[1,3,9], 3:[4,7,8],9:[2,5,9]}
1の望む出力
{2:[1,3,9], 9:[2,5,9]}
お願いします。
君とぉおおおおおおおおおおお ちゅーーーしたぁあああうぃいいwwwっw??
あなーーーーたーーーがw0−−−−wwww 好きだからぁあらあらあぁあwww
NOnoooo のんぉおおのぉお とぉおおおおをおをおををっをwww
2018/01/16(火) 22:29:00.66ID:1yOH1J8J
Ruby で作った。
同じ数字でグループ化して、要素数が最大になったものを取得する
scores = [1,2,9,2,3,9,7,3,3,2]
groups = scores.group_by { |num| num }
max_item = groups.max_by { |num, ary| ary.length }
groups.select! { |num, ary| ary.length == max_item[1].length }
p groups
出力
{2=>[2, 2, 2], 3=>[3, 3, 3]}
同じ数字でグループ化して、要素数が最大になったものを取得する
scores = [1,2,9,2,3,9,7,3,3,2]
groups = scores.group_by { |num| num }
max_item = groups.max_by { |num, ary| ary.length }
groups.select! { |num, ary| ary.length == max_item[1].length }
p groups
出力
{2=>[2, 2, 2], 3=>[3, 3, 3]}
9594
2018/01/16(火) 22:31:53.14ID:1yOH1J8J 94 は、間違い
インデックスが取得できていない
インデックスが取得できていない
9694
2018/01/16(火) 23:50:04.19ID:1yOH1J8J 94 の続きに、以下を付け足して
results = groups.each_with_object({}) do |(num, ary), h|
scores.each_with_index do |num2, i|
if num == num2
if h[num]
h[num] <<= i
else
h[num] = [i]
end
end
end
end
p results
出力
{2=>[1, 3, 9], 3=>[4, 7, 8]}
results = groups.each_with_object({}) do |(num, ary), h|
scores.each_with_index do |num2, i|
if num == num2
if h[num]
h[num] <<= i
else
h[num] = [i]
end
end
end
end
p results
出力
{2=>[1, 3, 9], 3=>[4, 7, 8]}
9794
2018/01/17(水) 00:52:52.06ID:oOmqXI7v Ruby で作った。
すべての配列を連結・平坦化して、最大値を探す。
その最大値を含むものだけを残す
groups = {2=>[1,3,9], 3=>[4,7,8],9=>[2,5,9]}
ary = groups.each_with_object([]) { |group, ary| ary << group }
max_num = ary.flatten!.max
results = groups.select {|key, ary| ary.include?(max_num) }
p results
結果
{2=>[1, 3, 9], 9=>[2, 5, 9]}
すべての配列を連結・平坦化して、最大値を探す。
その最大値を含むものだけを残す
groups = {2=>[1,3,9], 3=>[4,7,8],9=>[2,5,9]}
ary = groups.each_with_object([]) { |group, ary| ary << group }
max_num = ary.flatten!.max
results = groups.select {|key, ary| ary.include?(max_num) }
p results
結果
{2=>[1, 3, 9], 9=>[2, 5, 9]}
98遊園地 ◆ExGQrDul2E
2018/01/17(水) 03:14:18.29ID:M6pIuyeF Pythonのお勉強 Part55
スレッドで解答が有りました。
310 名前:デフォルトの名無しさん 2018/01/16(火) 22:18:39.43 ID:x5Aoa3gi
>>> #1のデータ
>>> d = {2:[1,3,9], 3:[4,7,8],8:[2,5,9]}
>>> max_value = max([max(value) for value in d.values()])
>>> [d.pop(key) if max_value not in value else None for key, value in d.copy().items()]
[None, [4, 7, 8], None]
>>> d
{2: [1, 3, 9], 8: [2, 5, 9]}
>>>
>>>
>>> #2のデータ
>>> from collections import defaultdict, Counter
>>> from itertools import compress
>>> l=[1,2,9,2,3,9,7,3,3,2]
>>> d = defaultdict(list)
>>> [d[value].append(idx) for idx, value in enumerate(l)]
[None, None, None, None, None, None, None, None, None, None]
>>> c = Counter(l)
>>> selector = [count == c.most_common(1)[0][1] for num, count in c.items()]
>>> dict(compress(d.items() , selector))
{2: [1, 3, 9], 3: [4, 7, 8]}
>>>
スレッドで解答が有りました。
310 名前:デフォルトの名無しさん 2018/01/16(火) 22:18:39.43 ID:x5Aoa3gi
>>> #1のデータ
>>> d = {2:[1,3,9], 3:[4,7,8],8:[2,5,9]}
>>> max_value = max([max(value) for value in d.values()])
>>> [d.pop(key) if max_value not in value else None for key, value in d.copy().items()]
[None, [4, 7, 8], None]
>>> d
{2: [1, 3, 9], 8: [2, 5, 9]}
>>>
>>>
>>> #2のデータ
>>> from collections import defaultdict, Counter
>>> from itertools import compress
>>> l=[1,2,9,2,3,9,7,3,3,2]
>>> d = defaultdict(list)
>>> [d[value].append(idx) for idx, value in enumerate(l)]
[None, None, None, None, None, None, None, None, None, None]
>>> c = Counter(l)
>>> selector = [count == c.most_common(1)[0][1] for num, count in c.items()]
>>> dict(compress(d.items() , selector))
{2: [1, 3, 9], 3: [4, 7, 8]}
>>>
99遊園地 ◆ExGQrDul2E
2018/01/17(水) 03:16:41.94ID:M6pIuyeF 質疑応答 回答 が 有りました?
答えてくれて人に感謝ですぅううううwwwww ほわええええええ
「ほぇ? ほぇええええええええええええええええwwwww」
答えてくれて人に感謝ですぅううううwwwww ほわええええええ
「ほぇ? ほぇええええええええええええええええwwwww」
100デフォルトの名無しさん
2018/01/17(水) 09:50:35.82ID:tGzDYIkw リスト内の要素に指定した文字列が含まれるのを検出したいとき
F="ex"
L=["exe","zip","tex"]
for i in L:
if i in F
というような処理しか知らないんですが、普通はどうやるんでしょうか
F="ex"
L=["exe","zip","tex"]
for i in L:
if i in F
というような処理しか知らないんですが、普通はどうやるんでしょうか
101デフォルトの名無しさん
2018/01/17(水) 10:29:50.20ID:bWxGsVYn 複数の環境でpythonを走らせるため、
if sys.version[0] == "2":
print "hoge"
else:
print("hoge")
というふうなコードを書いたのですが、python3で走らせようとしたら
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(txt)?
と、実行時には無視されるはずのところで怒られます。どうすればよいでしょう.
if sys.version[0] == "2":
print "hoge"
else:
print("hoge")
というふうなコードを書いたのですが、python3で走らせようとしたら
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(txt)?
と、実行時には無視されるはずのところで怒られます。どうすればよいでしょう.
102デフォルトの名無しさん
2018/01/17(水) 11:00:53.63ID:puvPFdX2 >>101
syntaxエラーは実行時のエラーじゃなくて
コードを読み込むときに出るエラーだから実行時に無視されるところでも出ちゃうね
「インデントの数が間違ってる」とかと同じ
exec関数を使って
if sys.version[0] == "2":
__exec('print "hoge"')
とか考えてみた(ちょっと強引な気もするけど)
多分ちゃんとしたやり方はimport __future__で
python3の機能をpython2でも使えるようにするもんだと思うけどね
syntaxエラーは実行時のエラーじゃなくて
コードを読み込むときに出るエラーだから実行時に無視されるところでも出ちゃうね
「インデントの数が間違ってる」とかと同じ
exec関数を使って
if sys.version[0] == "2":
__exec('print "hoge"')
とか考えてみた(ちょっと強引な気もするけど)
多分ちゃんとしたやり方はimport __future__で
python3の機能をpython2でも使えるようにするもんだと思うけどね
103デフォルトの名無しさん
2018/01/17(水) 11:13:56.25ID:puvPFdX2 >>100
別にそのやり方でも問題ないと思うけど
リスト内包表記を使うやり方もある
[i for i in L if F in i]
って感じで
この場合「Lに含まれるアイテムiのうち、Fという言葉が含まれるものだけでリストを作る」って意味になり
["exe","tex"]っていうリストを一行で作ることができるから
検出した文字列に何か操作したりしたいときは便利かもしれない
別にそのやり方でも問題ないと思うけど
リスト内包表記を使うやり方もある
[i for i in L if F in i]
って感じで
この場合「Lに含まれるアイテムiのうち、Fという言葉が含まれるものだけでリストを作る」って意味になり
["exe","tex"]っていうリストを一行で作ることができるから
検出した文字列に何か操作したりしたいときは便利かもしれない
104デフォルトの名無しさん
2018/01/17(水) 11:33:04.51ID:wKG3wA1V i for i
105デフォルトの名無しさん
2018/01/17(水) 12:32:45.31ID:tGzDYIkw106遊園地 ◆ExGQrDul2E
2018/01/17(水) 16:47:12.76ID:L6sUceLv やりたい事が無い。
どうしよう。。。
どうしよう。。。
107デフォルトの名無しさん
2018/01/17(水) 17:06:57.48ID:Gaok5e8Q 音声ファイルを読み込んでそれのスペクトログラムを作りたいのですが
やり方を教えてください
やり方を教えてください
108デフォルトの名無しさん
2018/01/17(水) 17:54:25.88ID:Iu2MWvIi 概出
109デフォルトの名無しさん
2018/01/17(水) 18:43:16.63ID:mMlmLaaw 百人一首をテキストベースで、上の句から一文字ずつ表示されるようなことは出来ますでしょうか?
例えば、
はなのいろは うつりなけりな いたずらに
という上の句がある場合、
は
はな
はなの
というようにごく短い間隔で表示される量が増えて行きます。
これがもし可能なら、この句の下の句は、
わがみよにふる ながめせしまに
なのですが、waとローマ字入力すると、OKで次の句に進むようにしたいです。
本当なら間違いの時の処理も考えたいのですが、一種の暗記カード的利用のためのプログラムを作ってみたいと思っています。
どなたかご教示いただけるとありがたく存じます。
例えば、
はなのいろは うつりなけりな いたずらに
という上の句がある場合、
は
はな
はなの
というようにごく短い間隔で表示される量が増えて行きます。
これがもし可能なら、この句の下の句は、
わがみよにふる ながめせしまに
なのですが、waとローマ字入力すると、OKで次の句に進むようにしたいです。
本当なら間違いの時の処理も考えたいのですが、一種の暗記カード的利用のためのプログラムを作ってみたいと思っています。
どなたかご教示いただけるとありがたく存じます。
110デフォルトの名無しさん
2018/01/17(水) 19:47:01.24ID:Bm/HPyIQ x="とんかつ"
y="とんかつ(ヒレ)"
z=re.match(x,y)
これは期待通りの動作なんですが
x="とんかつ(ヒレ)"
y="とんかつ(ヒレ)(大盛り)"
z=re.match(x,y)
だとNoneになります。どうしてでしょうか?
y="とんかつ(ヒレ)"
z=re.match(x,y)
これは期待通りの動作なんですが
x="とんかつ(ヒレ)"
y="とんかつ(ヒレ)(大盛り)"
z=re.match(x,y)
だとNoneになります。どうしてでしょうか?
111遊園地 ◆ExGQrDul2E
2018/01/17(水) 19:48:40.75ID:L6sUceLv マッチしてないからぜよ。
112遊園地 ◆ExGQrDul2E
2018/01/17(水) 20:04:45.54ID:L6sUceLv re.match(x,y)
文字列の先頭で正規表現とマッチするか判定します。
多分rと() 括弧の違い
import re
z=re.match(r"とんかつ","とんかつ(藍蘭島)")
print(z)
if z:
print (z.group())
文字列の先頭で正規表現とマッチするか判定します。
多分rと() 括弧の違い
import re
z=re.match(r"とんかつ","とんかつ(藍蘭島)")
print(z)
if z:
print (z.group())
113デフォルトの名無しさん
2018/01/17(水) 20:05:13.31ID:L6sUceLv <_sre.SRE_Match object; span=(0, 4), match='とんかつ'>
とんかつ
とんかつ
114遊園地 ◆ExGQrDul2E
2018/01/17(水) 20:09:16.23ID:L6sUceLv 検索側の()が邪魔してるな。
115デフォルトの名無しさん
2018/01/17(水) 20:10:05.14ID:aINj1+iA >>110
半角括弧は正規表現のグループ化構成体。従って2番目のxをre.matchで使うと
単に「とんかつヒレ」を探し、ヒレの部分をグループに突っ込もうとする
正規表現の特殊文字をマッチさせるならバックスラッシュ(円記号\)でエスケープ
半角括弧は正規表現のグループ化構成体。従って2番目のxをre.matchで使うと
単に「とんかつヒレ」を探し、ヒレの部分をグループに突っ込もうとする
正規表現の特殊文字をマッチさせるならバックスラッシュ(円記号\)でエスケープ
116デフォルトの名無しさん
2018/01/17(水) 20:14:53.84ID:L6sUceLv import re
x="とんかつ(ヒレ)"
y="とんかつ(ヒレ)(大盛り)"
print (re.match(x,y) )
x="とんかつ(ヒレ)"
y="とんかつ(ヒレ)(大盛り)"
print (re.match(x,y) )
117遊園地 ◆ExGQrDul2E
2018/01/17(水) 20:38:40.62ID:L6sUceLv 今日からお前は富士山だ!!
おちんぽ おちんちんがぁああああああああああ おちんちんびーーーーむ!!!
おちんぽ おちんちんがぁああああああああああ おちんちんびーーーーむ!!!
118デフォルトの名無しさん
2018/01/17(水) 21:17:58.09ID:Bm/HPyIQ >>115
なるほど、よくわかりました
実は検索文字はジェネレーターでたくさん出てくるため状況に応じてエスケープ記号を挿入できないっぽかったので
map(re.escape,テキストリスト)して上手くいきました
どもでした
なるほど、よくわかりました
実は検索文字はジェネレーターでたくさん出てくるため状況に応じてエスケープ記号を挿入できないっぽかったので
map(re.escape,テキストリスト)して上手くいきました
どもでした
119デフォルトの名無しさん
2018/01/18(木) 02:55:54.46ID:MkqD6lAI >>109
北斗の拳でぐぐれ
北斗の拳でぐぐれ
120デフォルトの名無しさん
2018/01/18(木) 04:30:10.01ID:HxtiIiOG >>109
ファイルは自分で読み込んで。
https://ideone.com/gLSYKm
ファイルは自分で読み込んで。
https://ideone.com/gLSYKm
121デフォルトの名無しさん
2018/01/19(金) 01:15:22.49ID:PdcBS2Hw #!/usr/bin/python
# -*- coding: utf-8 -*-
html_body = """
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-JP">
</head>
<body>
<h1>漢字かなカナ</h1>
</body>
</html>
"""
print(html_body)
こんな感じでHTMLを出力したいのですが文字コードがshift_jisになってしまって文字化けします。
<meta charset="utf-8">でも同様です。
どうすれば正常に表示できますか?よろしくお願いします。
# -*- coding: utf-8 -*-
html_body = """
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-JP">
</head>
<body>
<h1>漢字かなカナ</h1>
</body>
</html>
"""
print(html_body)
こんな感じでHTMLを出力したいのですが文字コードがshift_jisになってしまって文字化けします。
<meta charset="utf-8">でも同様です。
どうすれば正常に表示できますか?よろしくお願いします。
122デフォルトの名無しさん
2018/01/19(金) 03:21:42.12ID:ixhrA0RJ そのスクリプトファイルを、UTF-8 で保存すれば?
123遊園地 ◆ExGQrDul2E
2018/01/19(金) 03:36:31.72ID:sKGPJBpd <meta charset="EUC-JP"> を
<meta charset="UTF-8"> に変更だよーーーんwww
<meta charset="UTF-8"> に変更だよーーーんwww
124デフォルトの名無しさん
2018/01/19(金) 06:20:42.93ID:zZu5/UvX sys.stdoutを設定すれば?
125デフォルトの名無しさん
2018/01/19(金) 06:42:17.46ID:GujNruCj ああ!ソレじゃないかな、Python3の標準出力はプラットフォームのロケールに依存するので
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), 'EUC-JP')
みたいな事をしないとそれ以外の文字コードで出力できない。保存コードがSJISな可能性もあるけど
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), 'EUC-JP')
みたいな事をしないとそれ以外の文字コードで出力できない。保存コードがSJISな可能性もあるけど
126デフォルトの名無しさん
2018/01/19(金) 10:40:56.08ID:A90894OZ >Python3の標準出力はプラットフォームのロケールに依存するので
そうでもない
そうでもない
127デフォルトの名無しさん
2018/01/19(金) 11:04:43.09ID:fouJmeJy128デフォルトの名無しさん
2018/01/19(金) 12:05:59.49ID:vi/4PmUg native2asciiコマンドでいけるかな
129デフォルトの名無しさん
2018/01/19(金) 18:22:13.31ID:9YVUMHwh こんにちは
「初項n、公差mの等差数列をスペース区切りで表示するプログラムを記述しなさい」が解けません
m,n=[int(i) for i in input().split()]
for i in range(10):
if i==10:
print(m+n*i, end='\n')
else
print(m+n*i, end=' ')
で解答そのものは合ってるんですけどNGが出るんですよね…
「初項n、公差mの等差数列をスペース区切りで表示するプログラムを記述しなさい」が解けません
m,n=[int(i) for i in input().split()]
for i in range(10):
if i==10:
print(m+n*i, end='\n')
else
print(m+n*i, end=' ')
で解答そのものは合ってるんですけどNGが出るんですよね…
130愛知人
2018/01/19(金) 18:26:00.34ID:QV4koCPF 正解の出力うp
131愛知人
2018/01/19(金) 18:33:22.63ID:QV4koCPF range(10)→[0,1,2,3,4,5,6,7,8,9]
132デフォルトの名無しさん
2018/01/19(金) 18:34:38.63ID:9YVUMHwh あっ
133デフォルトの名無しさん
2018/01/19(金) 18:34:53.05ID:9YVUMHwh そういうことでしたか…
ありがとうございます
ありがとうございます
134デフォルトの名無しさん
2018/01/19(金) 21:23:44.01ID:HbIFkzGZ 「qutebrowser」というソフトをインストールする際
$ tox -e mkvenv-pypi
というコマンドで
InterpreterNotFound: python3
というエラーが出てしまいます。
pathも通しておりpython --versionもできます。
「qutebrowser」のバグであればisueに書くのですが
自分のpythonの知識不足が原因の可能性が高いのでこちらで質問させていただきました
よろしくお願いします
OS:windows7 64bit
python:3.7.0a4 64bit
$ tox -e mkvenv-pypi
というコマンドで
InterpreterNotFound: python3
というエラーが出てしまいます。
pathも通しておりpython --versionもできます。
「qutebrowser」のバグであればisueに書くのですが
自分のpythonの知識不足が原因の可能性が高いのでこちらで質問させていただきました
よろしくお願いします
OS:windows7 64bit
python:3.7.0a4 64bit
135デフォルトの名無しさん
2018/01/20(土) 01:03:22.83ID:81nWAu9S136デフォルトの名無しさん
2018/01/20(土) 01:28:40.70ID:6q5j1Hcg >pathも通しており、python --versionもできます
それは、python というコマンドの場所がわかるだけだろ
>InterpreterNotFound: python3 というエラーが出てしまいます。
python3 というコマンドの場所がわかるのか?
「python3 --version」って、打てるか?
それは、python というコマンドの場所がわかるだけだろ
>InterpreterNotFound: python3 というエラーが出てしまいます。
python3 というコマンドの場所がわかるのか?
「python3 --version」って、打てるか?
137134
2018/01/20(土) 06:46:56.76ID:RL0/RrMv Make sure your python3 is Python 3.5 or newerとあったのでpythonのver3.~を指しているか
python内部のpython3というコマンドかバイナリを指していると予想したのですが
どちらにしても見つからないならpath関係の可能性も高いかと思い記載しました
tox.ini等の書き換えが必要なのかもっと初歩的な間違いをしているのかは分かりませんが
色々試してもうまく行かず躓いています...
python内部のpython3というコマンドかバイナリを指していると予想したのですが
どちらにしても見つからないならpath関係の可能性も高いかと思い記載しました
tox.ini等の書き換えが必要なのかもっと初歩的な間違いをしているのかは分かりませんが
色々試してもうまく行かず躓いています...
138デフォルトの名無しさん
2018/01/20(土) 13:47:37.29ID:5zEZap2N139デフォルトの名無しさん
2018/01/20(土) 13:51:14.19ID:zS6yqytM pythonを趣味で始めようとしてます
おすすめの開発環境を教えて下さい
CではVS2017、Javaではeclipseを使ってました
おすすめの開発環境を教えて下さい
CではVS2017、Javaではeclipseを使ってました
140愛知人
2018/01/20(土) 13:52:44.21ID:+yb3sEoQ VSCode
141デフォルトの名無しさん
2018/01/20(土) 15:41:05.90ID:+v9jVBf6 >>137
qutebrowser、Windows用ビルド済みインストーラー版あるじゃん?
qutebrowser、Windows用ビルド済みインストーラー版あるじゃん?
142デフォルトの名無しさん
2018/01/20(土) 16:32:05.56ID:1XxiyXve >>139
VS使ってたならインストーラからPTVSも良いだろうけど、PEP484が…
https://github.com/Microsoft/PTVS/commit/3c67e8b
あたりで実装されてるようだけど、リリースはまだ?
その辺はPyCharmが優れてるか知らんが。一々assert isinstanceは野暮ったい
VS使ってたならインストーラからPTVSも良いだろうけど、PEP484が…
https://github.com/Microsoft/PTVS/commit/3c67e8b
あたりで実装されてるようだけど、リリースはまだ?
その辺はPyCharmが優れてるか知らんが。一々assert isinstanceは野暮ったい
143遊園地 ◆ExGQrDul2E
2018/01/20(土) 17:42:59.11ID:1ejhfD4c おちんぽーーー!! おちんぽーーー!!! おちんぽっぽぉおおお!!!???
ぶひいいいいいいいいいいwwwww ∠( ゚д゚)/
最近はどのスレを荒らすの分からなく成って来た。
ぶひいいいいいいいいいいwwwww ∠( ゚д゚)/
最近はどのスレを荒らすの分からなく成って来た。
144デフォルトの名無しさん
2018/01/20(土) 21:06:58.08ID:xBZ2/RS5 C#からIronPython使ってpythonのプログラムを起動しようとしてるんだが
No module named cv2
ってエラーが出て起動できない
普通にコマンドプロンプトでpythonプログラムのほうは起動するんだけど
どこにcv2を置いたらいいのか教えて偉い人
No module named cv2
ってエラーが出て起動できない
普通にコマンドプロンプトでpythonプログラムのほうは起動するんだけど
どこにcv2を置いたらいいのか教えて偉い人
145遊園地 ◆ExGQrDul2E
2018/01/20(土) 22:02:42.22ID:1ejhfD4c 右クリック で Pythonパッケージをインストール って出ない?
146遊園地 ◆ExGQrDul2E
2018/01/20(土) 22:06:57.78ID:1ejhfD4c 出ないなら、仮想環境を追加する必要が有るかも知れない。
147デフォルトの名無しさん
2018/01/21(日) 22:43:36.27ID:h9XPhFWi PYTHONを覚えるには無料サイトを使うのと本買うのどっちがいいですか?
148愛知人
2018/01/21(日) 22:51:23.74ID:TYCBS/Jo 無理サイトで十分
149デフォルトの名無しさん
2018/01/21(日) 22:53:05.90ID:h9XPhFWi おススメの無料サイト教えてください
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で [お断り★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★3 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★7 [ぐれ★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- エッヂ落ちた?
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★3
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★4
- 中国「ジャップ、輸出入停止するわ」👈実際ガチで困るヤバいモノって何??????? [242521385]
- 【高市早苗】習近平、本気で激おこ [115996789]
- 【岸田悲報】🧑‍⚖「あれっ…そんなにズブズブなの…?」山上裁判で「安倍晋三と統一教会の関係」が次々と明らかに [559744496]
