[解決済み】ペアのリスト/タプルを2つのリスト/タプルにアンパックする。
2022-04-08 23:17:05
質問
<ブロッククオート
重複している可能性があります。
Pythonによるトランスポーズ/アンジップ関数
こんな感じのリストがあります。
list = (('1','a'),('2','b'),('3','c'),('4','d'))
リストを2つに分けたいのですが。
list1 = ('1','2','3','4')
list2 = ('a','b','c','d')
で例えばできるんです。
list1 = []
list2 = []
for i in list:
list1.append(i[0])
list2.append(i[1])
しかし、もっとエレガントなソリューションがあるのか知りたい。
どのように解決するのですか?
>>> source_list = [('1','a'),('2','b'),('3','c'),('4','d')]
>>> list1, list2 = zip(*source_list)
>>> list1
('1', '2', '3', '4')
>>> list2
('a', 'b', 'c', 'd')
編集する
なお
zip(*iterable)
はそれ自身の逆数である。
>>> list(source_list) == zip(*zip(*source_list))
True
2つのリストに解凍すると、こうなります。
>>> list1, list2 = zip(*source_list)
>>> list(source_list) == zip(list1, list2)
True
rocksportrocker さんの提案による追加。
関連
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] 複数の例外を1行でキャッチする(ブロックを除く)
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] 2つのリストの差を取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
任意波形を生成してtxtで保存するためのPython実装
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み】ValueError: xとyは同じサイズでなければならない
-
[解決済み] Transpose/Unzip Function (zipの逆数)?