2017-04-21 12 views
0

私は、IPアドレスの1つのリストを持っている:挿入固定数

私はすべてのIPアドレスの要素の後に、同じリストで6つのnull要素と「合計」を挿入する必要が
ip_list = ['10.7.0.151', '10.7.0.152', '10.7.0.153', '10.7.0.154', '10.7.0.155', '10.7.0.156', '10.7.0.157', '10.7.0.158'] 

ip_list = ['10.7.0.151', '', '', '', '', '', '', 'Total', 
      '10.7.0.152', '', '', '', '', '', '', 'Total', 
      . . . 
      '10.7.0.158', '', '', '', '', '', '', 'Total'] 

上記の方法で要素を挿入する方法があれば誰かが示唆していますか?またはハードコーディングされたリストを取得する必要がありますか?

答えて

2

リストの理解はすべきです。 IPに新しいアイテムを追加することによって、新たな反復可能を作成し、理解にするために、ネストされたとアンラップ:

lst = [i for x in ip_list for i in (x,)+('',)*6+('Total',)] 
0

私が最初に反復し、各パスに必要な要素を追加することにより、第二のリストを生成します:

original_list = ['1.2.3.4', '5.6.7.8'] 
extended_list = [] 

for item in original_list: 
    extended_list.append(item) 
    for i in xrange(6): extended_list.append('') 
    extended_list.append('Total') 

あり同じことを達成することができ千賢いワンライナーだが、これは、シンプルで柔軟性があります十分な。

+0

お寄せいただきありがとうございます! –

0

map

from functools import reduce # python3+ 


reduce(lambda m,n: m+n, map(lambda x: [x]+['']*6+['Total'], ip_list)) 

reduce私はこのことができます願っています。

+1

'reduce'はPython 2.7に組み込まれているので、インポートする必要はありません –

+0

私はバージョンに依存しない答えを提供しようとしていましたが、私は答えを明確にします。 – Abdou