Python:使用列表长度自增枚举字典的索引
Python: Using the list length to increment the index of the enumerated dictionary
我正在循环并枚举字典如下:
for column, key, in enumerate(guid_material_dictionary.iteritems()):
print column, key, len(key[1])
它给出以下输出:
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
列表长度在输出中变化很大。
我想要做的是使用列表长度来增加列数。
因此列数由列表的长度定义。此输出是我打算执行的示例。
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
我希望问题很清楚。我尝试的是添加具有列表长度的列整数,但它不起作用,因为列需要由列表长度定义。
您不能为此使用 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])
只需跳过 enumerate
部分并使用变量:
column = 0
for key in guid_material_dictionary.iteritems():
print column, key, len(key[1])
column += len(key[1])
请注意,您在使用后增加 column
变量。
注意字典键的顺序是任意的,所以你不能真正匹配column
变量钥匙。
我正在循环并枚举字典如下:
for column, key, in enumerate(guid_material_dictionary.iteritems()):
print column, key, len(key[1])
它给出以下输出:
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
列表长度在输出中变化很大。 我想要做的是使用列表长度来增加列数。 因此列数由列表的长度定义。此输出是我打算执行的示例。
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
我希望问题很清楚。我尝试的是添加具有列表长度的列整数,但它不起作用,因为列需要由列表长度定义。
您不能为此使用 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])
只需跳过 enumerate
部分并使用变量:
column = 0
for key in guid_material_dictionary.iteritems():
print column, key, len(key[1])
column += len(key[1])
请注意,您在使用后增加 column
变量。
注意字典键的顺序是任意的,所以你不能真正匹配column
变量钥匙。