2017-08-14 8 views
0
a = [['gigethernet1/0/1', 234], ['vlan1', 675876], ['fastethernet1/0', 3534]] 

b = [['gigethernet1/0/1', 78678], ['vlan1', 6789679687], ['fastethernet1/0', 67896786]] 

anewlist = [line for line in a if "thernet" in line[0]] 

bnewlist = [line for line in b if "thernet" in line[0]] 

複数のリストで2つの変数があります。変数Aでは、特定の文字列で特定の行をフィルタリングする新しい変数を作成しています。'thernet '変数Bについても同じことをしています。私は変数AとBをそれぞれの行に併合したいが、変数Bの1つの要素だけを含んでいる。for文を使用すると、2つのリストの各行を結合して変数に格納します。

[ 'gigethernet1/0/1'、234、78678] [ 'fastethernet1/0'、3534、67896786]

+0

要件をより明確にすることはできますか? – akhilsp

答えて

0

これを試してみてください:

data = [dict(anewlist), dict(bnewlist)] #Create a list of dicts 
    # dict([['a','b'],['c','d']]) => {'a': 'b', 'c': 'd'} 

output = [[key]+[d.get(key) for d in data] for key in set().union(*data)] 
    # '*' operator unpacks the list of dicts. Google 'python unpacking lists' for more info 
    # set().union(dicts) create a set() of keys of the dicts passed in. Read about python sets, especially its `union` method, and what happens when a dict is passed as an argument to `set()`. 
    # Rest are list comprehension and dictionary operations! 

・ホープ、このことができます!

+0

は完全に機能しました。あなたはこれがどのように働いているのか、私が読むことができるように指示してくれますか?途中でありがとう! –

+0

確かに、私は答えを更新します。 – akhilsp

+1

詳細を教えていただきありがとうございます。私はこのことを理解して勉強します。 –

関連する問題