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

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

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

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

Q&A

解決済

3回答

806閲覧

2つのデータリストをマッチさせる

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

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

0グッド

0クリップ

投稿2018/04/13 03:48

編集2018/04/13 03:50

list1=[["a","1"],["b","2"],["c","3"]]
list2=["b","c","a"]

という2つのリスト(データ)があってlist2の要素を順序を保ちながら、list2のそれぞれの要素が、
list1のそれぞれの要素の0番目(a,b,c)にマッチしたら、list1のそれぞれの要素の1番目(1,2,3)をa,b,cと一緒にアウトプットする方法がわかりません。
出て欲しい結果は

b 2
c 3
a 1

(list2の順序を保ちながらです)

このような感じです。

OrderedDictを使おうと思ったのですが、2つのデータ(リスト)をどううまく扱って良いのか、またどのようにまっチッさせれば良いのかわかりません。
よろしくおねがいします。

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

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

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

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

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

guest

回答3

0

ベストアンサー

list1を辞書にしておくのが簡単です。

python

1list1=[["a","1"],["b","2"],["c","3"]] 2list1_dict = dict(list1) 3list2=["b","c","a"] 4for x in list2: 5 print(x, list1_dict(x)) 6

投稿2018/04/13 03:54

hayataka2049

総合スコア30933

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

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

退会済みユーザー

退会済みユーザー

2018/04/13 06:13

hayataka2049様 辞書を使うとこんなに簡単にできるのですね。 わかりやすい説明有難うこざいます。
guest

0

既に出ている回答に劣りますが、敢えてOrderedDictを使う方法も紹介します。

Python

1from collections import OrderedDict 2 3list1 = [["a", "1"], ["b", "2"], ["c", "3"]] 4list2 = ["b", "c", "a"] 5 6dict_1 = dict(list1) 7 8my_dict = OrderedDict() 9for elem in list2: 10 my_dict[elem] = dict_1[elem] 11 12for k, v in my_dict.items(): 13 print(k, v)

実行結果 Wandbox

b 2 c 3 a 1

投稿2018/04/13 04:10

LouiS0616

総合スコア35660

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

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

退会済みユーザー

退会済みユーザー

2018/04/13 06:15

LouiS0616様 OrderedDictを使った方法を教えていただき有難うございます。
guest

0

dictで十分だと思います。
または、強引にsortedを使う方法もあります。

python

1dict_list1 = dict(list1) 2for k in list2: 3 print(k, dict_list1[k]) 4 5# -- 6 7sorted_list1 = sorted(list1, key=lambda x: list2.index(x[0])) 8for k, v in sorted_list1: 9 print(k, v)

投稿2018/04/13 03:59

編集2018/04/13 04:22
arch_

総合スコア158

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

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

退会済みユーザー

退会済みユーザー

2018/04/13 06:14

arch_様 有難うございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問