質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1803閲覧

抽出、合計計算

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2017/04/23 00:33

イメージ説明

追記:print(:)の次に
print sum(num)を使うと思うのですが、エラーを吐いて原因不明です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

raccy

2017/04/23 01:39

エラーになるソースコード全文(または、エラーを再現可能な部分)とエラーメッセージの全文を貼り付けて下さい。何がエラーになるかはコードとエラーメッセージがなければ誰にもわかりません。
shimizukawa

2017/04/23 01:40

何かの課題ページを画像化して丸投げしているように思えます。回答者が上記の画像から自分でテキスト入力するのは面倒なので、このままでは回答が付かないでしょう。質問は画像でなくテキストで入力し、あなたが書いたコードを提示し、発生したエラーも提示してください。
guest

回答2

0

ベストアンサー

こんな感じですか?

Python

1M,N = 6,8 2data = [[j for j in range(i,i+N)] for i in range(0,M*N,N)] 3 4x0,x1,y0,y1 = 1,3,1,2 5data_range = [d[x0:x0+x1] for d in data[y0:y0+y1]] 6# -> [[9, 10, 11], [17, 18, 19]] 7 8total = sum([sum(d) for d in data_range]) 9# -> 84

Numpyを使うともう少しシンプルになります。

Python

1import numpy as np 2 3M,N = 6,8 4data = np.reshape(np.arange(M*N), (M, N)) 5 6x0,x1,y0,y1 = 1,3,1,2 7data_range = data[y0:y0+y1, x0:x0+x1] 8 9total = data_range.sum()

投稿2017/04/23 10:15

編集2017/04/23 23:42
magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/04/23 11:00

勉強になります。
guest

0

Python

1 2#coding: utf-8 3 4M, N = 8, 6 5 6X0, X1, Y0, Y1 = 1, 3, 1, 2 7 8DATA = [[j for j in range(i, i+M)] for i in range(0, M*N, M)][Y0:Y1+1] 9 10for var in range(X1 - X0): 11 DATA[var] = DATA[var][X0:X1+1] 12 13print(sum(sum(DATA, [])))

Ruby

1 2#encoding: utf-8 3 4M, N = 8, 6 5 6x0, x1, y0, y1 = 1, 3, 1, 2 7 8data = (0..((M * N) - 1)).each_slice(M).to_a[y0..y1] 9 10p data.map{|e| e[x0..x1]}.flatten.inject{|sum, i| sum += i}

考えてみました。
このコードが正確に動くかどうかは分かりません。
Pythonの方のスライスの使い方がよくわからず
nums[x0:-(x1 + 1)]の部分が変なことになっています。
#追記
2017/04/23
magichan様のコードを参考にして変更しました。

投稿2017/04/23 04:51

編集2017/04/23 12:16
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問