Python:使用列表长度增加枚举字典的索引

2024-09-28 05:27:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我循环列举一本字典如下:

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

我希望问题很清楚。我尝试将列整数与列表长度相加,但没有效果,因为列需要由列表长度定义。你知道吗


Tags: key列表columnsteenbetonggbj1l17up8z1vviopaksteenwolkoper
2条回答

只需跳过enumerate部分并使用一个变量:

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

请注意,在使用column变量之后,需要增加它。你知道吗


请注意字典键的顺序是任意的,因此无法将column变量与键匹配。你知道吗

你不能用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])

相关问题 更多 >

    热门问题