###前提・実現したいこと
Pythonについての質問です
[(a1,b1),(a2,b2),...,(an,bn)]のような構造のものを
[a1,a2,...an]と[b1,b2,...bn]のように分割する方法を教えて下さい。
初歩的な質問かもしれませんが、お願い致します。
yohhoyが👍を押しています
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
解決してるみたいなので、ご参考まで
python
1# -*- coding: utf-8 -*- 2def main(): 3 ab = [('a1', 'b1'), ('a2', 'b2'), ('a3', 'b3'), ('an', 'bn')] 4 a, b = map(list, zip(*ab)) 5 print(a) 6 print(b) 7 8if __name__ == '__main__': 9 main() 10
zip(*ab)はどういうことを行っているのですか?
1, *演算子を使ってlistをアンパックします。
python
1 print(*ab) 2# output 3('a1', 'b1') ('a2', 'b2') ('a3', 'b3') ('an', 'bn')
2,zip関数は引数で渡されたそれぞれの要素を集めたtupleのイテレータを作ります。
python
1 for i in zip(('a1', 'b1'), ('a2', 'b2'), ('a3', 'b3'), ('an', 'bn')): 2 print(i) 3# output 4('a1', 'a2', 'a3', 'an') 5('b1', 'b2', 'b3', 'bn')
投稿2017/05/08 13:49
編集2017/05/08 17:37総合スコア5846
0
ベストアンサー
ごくつまらないですがこのように2回ループするのが一番シンプルそうです。
python
1ab = [(a1,b1),(a2,b2),...,(an,bn)] 2 3a = [l for l, r in ab] 4b = [r for l, r in ab] 5
投稿2017/05/08 11:48
総合スコア5570
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
ベストアンサーはumyuさんのやつですね。
2017/05/10 01:55 編集
読み捨てるほうは [l for l, _ in ab] みたく _ で受けたほうが良いかも。
(Python3なら実害はありませんがPython2だとスコープが漏れる)
参考:http://gihyo.jp/dev/serial/01/pythonhacks/0008
Python2だとスコープ漏れるんですか。VC++6…いやいや。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/08 15:06
2017/05/08 16:14
2017/05/09 04:18