2016-11-01 13 views
0

のインデックスをインクリメントするために、リストの長さを使用する:Pythonの:私は次のように辞書をループして列挙しています列挙辞書

0 ('0GVHv3rDXBewxnxizHODe9', ['Steen', 'Isolatie', 'Spouw']) 3 
1 ('2kj3p602r8MgLr9ocS99Pp', ['Beton C']) 1 
2 ('3_gGbJ1L17UP8z1VVIOPak', ['Beton', 'Pleister', 'Baksteen', 'Folie']) 4 
3 ('3mROnO4_7VbAI2oRYB55vS', ['Koper']) 1 
4 ('1HX$_kbR1AKxF1CmKGciQa', ['Steen - kalkzandsteen']) 1 
5 ('0xtMj9XwvBjvPzzyvlFeQ0', ['Isolatie - Steenwol zacht']) 1 

リストの長さ:

for column, key, in enumerate(guid_material_dictionary.iteritems()): 
      print column, key, len(key[1]) 

それは次のような出力を提供します出力が大きく変動します。 私がしようとしているのは、リストの長さを使用して列数を増やすことです。 列のカウントはリストの長さで定義されるようにします。この出力は、私がやろうとしていることの一例です。

0 ('0GVHv3rDXBewxnxizHODe9', ['Steen', 'Isolatie', 'Spouw']) 3 
3 ('2kj3p602r8MgLr9ocS99Pp', ['Beton C']) 1 
4 ('3_gGbJ1L17UP8z1VVIOPak', ['Beton', 'Pleister', 'Baksteen', 'Folie']) 4 
8 ('3mROnO4_7VbAI2oRYB55vS', ['Koper']) 1 
9 ('1HX$_kbR1AKxF1CmKGciQa', ['Steen - kalkzandsteen']) 1 
10 ('0xtMj9XwvBjvPzzyvlFeQ0', ['Isolatie - Steenwol zacht']) 1 

私は質問がはっきりしていることを願っています。私が試みたのは、列の長さに列の整数を追加することですが、列はリストの長さで定義する必要があるため、機能しません。

答えて

0

だけenumerate部分をスキップして、変数を使用します。

column = 0 
for key in guid_material_dictionary.iteritems(): 
    print column, key, len(key[1]) 
    column += len(key[1]) 

使用後に変数columnを増やすことに注意してください。あなたが本当にキーでcolumn変数と一致しないことができるように辞書のキーの順序は、任意であることを


注意

0

enumerateは使用できません。しかし、あなた自身のジェネレータを書くことは十分に簡単です:

def my_enumerate(iterable): 
    total = 0 
    for key, value in iterable: 
     yield total, (key, value) 
     total += len(value) 

だから、あなたはこのようにそれを使用することができます:

for column, key in my_enumerate(guid_material_dictionary.iteritems()): 
    print column, key, len(key[1]) 
関連する問題