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

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

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

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

Q&A

解決済

3回答

15014閲覧

配列の要素を3個ずつ合計して計算したい

退会済みユーザー

退会済みユーザー

総合スコア0

Python

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

0グッド

1クリップ

投稿2017/06/22 00:37

編集2017/06/22 00:44

配列の要素を3個ずつ合計して計算したいです。

# coding: utf-8 first_lines = input() s = first_lines.rstrip().split() a_str = list(map(int,s)) num_array =[] for i in range(a_str[0]): second_lines = input() t = second_lines.rstrip().split() b_str = list(map(int,t)) num_array.extend(b_str) for_num =[] for i in range(a_str[0]*2): for_num.append(i*3) x=0 three_num =[] for j in range(a_str[0]*2): k = j*3 l = k+3 three_num.append(num_array[k:l]) sum_num=[] for i in range(a_str[0]*2): x =three_num[i] y = sum(x) sum_num.append(y) print(sum_num) sum_num2=[] sum_num3=[] deci = int(a_str[0]/a_str[1]) for j in range(a_str[0]*2): if j % 2 == 0: sum_num2.append(sum_num[j]) else: sum_num3.append(sum_num[j]) print(sum_num2) print(sum_num3)

とコードを書きました。

print(sum_num2)
print(sum_num3)

[6, 6, 6, 15, 15, 15] [15, 15, 15, 6, 6, 6]

と出力されました。
これらの配列を、配列ごとに配列の要素を3個ずつ合計して計算したいです。
例えば、
6, 6, 6 を計算して18、
15, 15, 15 を計算して 45、

15, 15, 15 を計算して 45、
6, 6, 6 を計算して18、
なので、最終的には合計した値を配列ごとに入力して
[18,45]
[45,18]
と出力させたいです。
だけど、for文もしくは配列のスライスを使って要素を3個ずつ取り出す方法がわかりません。
どのように書けますか?

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

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

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

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

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

guest

回答3

0

こんな感じでしょうか?

Python

1sum_num = [6, 6, 6, 15, 15, 15] 2print([sum(sum_num[i:i+3]) for i in range(0,len(sum_num),3)]) 3#=> [18, 45]

投稿2017/06/22 01:19

magichan

総合スコア15898

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

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

退会済みユーザー

退会済みユーザー

2017/06/22 01:31

ありがとうございます!すごくすっきり書けますね!ひとつ疑問なのですが、print文の中でfor文を回すことはできるのでしょうか?print文の中で、出力させたいものを[] で囲っている点がよくわからなくて..。この[]の事は何と呼ぶのでしょうか?
magichan

2017/06/22 02:23

'[]' は通常のリストを表す'[]' です for文があるのはリストの内包表記となります。 ですので、 「print文内でfor文を回すことができる」 というよりは 「内包表記によりfor文を使ってリストを作成している→その結果をprintしている」 と理解した方が正しいお思います。
退会済みユーザー

退会済みユーザー

2017/06/22 04:28

なるほど!ありがとうございます!
guest

0

ベストアンサー

python3

python

1iarr = [6, 6, 6, 15, 15, 15] 2 3stotal = 0 # 小計 4rcount = 0 # ループカウンタ 5for v in iarr: 6 stotal += v # 小計に加算 7 rcount += 1 # カウントをすすめる 8 if rcount % 3 == 0: # 3回ごとに実行 9 print(stotal) # 合計を取得 10 stotal = 0 # 小計をリセット

投稿2017/06/22 00:46

intelf___

総合スコア868

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

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

intelf___

2017/06/22 00:50

回答はヒントになります。細かい部分は自分で実装してください。 print(stotal)を表示せず配列に格納して返す関数を作れば複数の配列でも利用できそうですね。
guest

0

# 自分の得意な言語で # Let's チャレンジ!!

自分の得意な言語で、とあるので、好きな言語で答えてよろしいのでしょうか?

投稿2017/06/22 00:42

yoorwm

総合スコア1305

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

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

退会済みユーザー

退会済みユーザー

2017/06/22 00:45

すみません、その部分はないものと考えてください。Pythonでお願いします
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問