2017-07-26 9 views
-1

私は、二つのリストを持っていると言う:条件に基づいてリストの要素を圧縮する方法は?

a = ['A', 'B', 'C'] 

b = ['B/X', 'Y/C', 'A/Z'] 

にはどうすれば効率的に取得するために一緒にリストを圧縮します:

[('A', 'A/Z'), ('B', 'B/X'), ('C', 'Y/C')] 

はどうもありがとうございました!

+1

「b」に要素「A/B」と「B/C」がある場合はどうなりますか?あなたはどの要素を選んでいますか? –

+0

間違いなくありません。だから、私はそれらの事件を書かなかったのです。 – AnnaR

答えて

0

あなたは、単に最初の辞書を構築することができます。

lookup = { ki : k for k in b for ki in k.split('/') } 

し、リストの内包表記を使用します。

[(k,lookup.get(k)) for k in a] 

bのどの要素がサブ要素を持っていた場合、これはタプルの2番目の要素としてNoneを追加します一致した

+0

ありがとうございます! – AnnaR

関連する問題