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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

4回答

1596閲覧

リストの要素の取り出し方がわかりません

mi56

総合スコア14

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2017/05/04 09:53

Pythonでリストの中にある各リストの0番目の要素だけを取り出したいです。
inputs = [[-14,-5],[13,13],[20,23],[-19,-11],[-9,-16],[21,27],[-49,15],[26,13],[-46,5],[-34,-1],[11,15],[-49,0],[-22,-16],[19,28],[-12,-8],[-13,-19],[-41,8],[-11,-6],[-25,-9],[-18,-3]]

具体的には上記のようなinputsからそれぞ0番目と1番目を別々にして
a = [-14,13,20,-19・・・]
b = [-5,13,23,-11・・・]
と分けたいです。

###発生している問題・エラーメッセージ

リストの中の各リストの0番目1番目の取り出しかたは下記のようにすれば一つずつ取り出せのはわかったのですがfor文を用いて一気に分割の仕方が全然わかりませんでした、、

inputs = [[-14,-5],[13,13],[20,23],[-19,-11],[-9,-16],[21,27],[-49,15],[26,13],[-46,5],[-34,-1],[11,15],[-49,0],[-22,-16],[19,28],[-12,-8],[-13,-19],[-41,8],[-11,-6],[-25,-9],[-18,-3]] print(inputs[0][1]) -5

###補足情報(言語/FW/ツール等のバージョンなど)
Python3.6を使用しています。

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

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

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

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

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

guest

回答4

0

ベストアンサー

簡単に

Python

1inputs = [[-14,-5],[13,13],[20,23],[-19,-11],[-9,-16],[21,27],[-49,15],[26,13],[-46,5],[-34,-1],[11,15],[-49,0],[-22,-16],[19,28],[-12,-8],[-13,-19],[-41,8],[-11,-6],[-25,-9],[-18,-3]] 2a,b = zip(*inputs)

の1行でいけると思います。

投稿2017/05/04 13:35

編集2017/05/04 13:39
magichan

総合スコア15898

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

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

mi56

2017/05/04 16:07

なるほどと思いました! ありがとうございました。
guest

0

python

1from operator import itemgetter 2 3inputs = [[-14,-5],[13,13],[20,23],[-19,-11],[-9,-16],[21,27],[-49,15],[26,13],[-46,5],[-34,-1],[11,15],[-49,0],[-22,-16],[19,28],[-12,-8],[-13,-19],[-41,8],[-11,-6],[-25,-9],[-18,-3]] 4 5a = list(map(itemgetter(0), inputs)) 6b = list(map(itemgetter(1), inputs))

mapoperatorの便利関数群を使うとfor文を回さなくても色々と出来ます。(mapはよく避けるべきと言われますが個人的にはfor文よりもこっちの方が読みやすく好みです。)

投稿2017/05/04 12:05

YouheiSakurai

総合スコア6142

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

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

0

ざっと作ってみると、

Python3

1inputs = [[-14,-5],[13,13],[20,23],[-19,-11],[-9,-16],[21,27],[-49,15],[26,13],[-46,5],[-34,-1],[11,15],[-49,0],[-22,-16],[19,28],[-12,-8],[-13,-19],[-41,8],[-11,-6],[-25,-9],[-18,-3]] 2a = [] 3b = [] 4for x1, x2 in inputs: 5 a.append(x1) 6 b.append(x2) 7 8for x in a: 9 print(x) 10 11print("") 12 13for x in b: 14 print(x) 15

のようなものでしょうか。

投稿2017/05/04 10:16

seastar3

総合スコア2285

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

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

0

素直に書けば以下のようになるかと思います。

Python

1inputs = [[-14,-5],[13,13],[20,23],[-19,-11],[-9,-16],[21,27],[-49,15],[26,13],[-46,5],[-34,-1],[11,15],[-49,0],[-22,-16],[19,28],[-12,-8],[-13,-19],[-41,8],[-11,-6],[-25,-9],[-18,-3]] 2a = [] 3b = [] 4for i in inputs: 5 a.append(i[0]) 6 b.append(i[1]) 7print(a) # [-14, 13, 20, -19, -9, 21, -49, 26, -46, -34, 11, -49, -22, 19, -12, -13, -41, -11, -25, -18] 8print(b) # [-5, 13, 23, -11, -16, 27, 15, 13, 5, -1, 15, 0, -16, 28, -8, -19, 8, -6, -9, -3]

投稿2017/05/04 10:05

can110

総合スコア38262

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問