-1
我有兩個表,說:如何根據條件壓縮列表元素?
a = ['A', 'B', 'C']
和
b = ['B/X', 'Y/C', 'A/Z']
如何有效地壓縮名單合力得到:
[('A', 'A/Z'), ('B', 'B/X'), ('C', 'Y/C')]
非常感謝您!
我有兩個表,說:如何根據條件壓縮列表元素?
a = ['A', 'B', 'C']
和
b = ['B/X', 'Y/C', 'A/Z']
如何有效地壓縮名單合力得到:
[('A', 'A/Z'), ('B', 'B/X'), ('C', 'Y/C')]
非常感謝您!
你可以簡單地先構造一個字典:
lookup = { ki : k for k in b for ki in k.split('/') }
,然後使用列表理解:
[(k,lookup.get(k)) for k in a]
這將在元組添加None
作爲第二個元素,如果沒有的b
元素有一個子元素匹配。它將生成:
>>> [(k,lookup.get(k)) for k in a]
[('A', 'A/Z'), ('B', 'B/X'), ('C', 'Y/C')]
非常感謝! – AnnaR
如果'b'中有一個元素'A/B'和'B/C'會怎麼樣?你選擇哪一個元素? –
肯定沒有。這就是爲什麼我沒有寫這些案例。 – AnnaR