为什么将迭代列表的不同值分配为字典的键只返回一个键(列表的最后一个值)?

时间:2021-05-30 06:37:02

标签: python dictionary

我正在尝试创建一个字典,键是列表的数字,值为“无”。但是,输出是具有单个键的字典。我认为它会将三个数字作为键返回,因为它们是不同的键,因此不会重新分配键值。

这是我的代码:

def dicc_test():
    lista = [3,4,5]

    for n in lista:
        dicc = {}
        dicc[n] = None
    return dicc

print(dicc_test())

这将打印以下内容:

{5: None}

我不明白为什么它不打印这样的东西:

{3: None, 4: None, 5: None}

1 个答案:

答案 0 :(得分:1)

您为每次循环迭代创建一个新字典。在循环之前创建一次:

def dicc_test():
    lista = [3,4,5]

    dicc = {}
    for n in lista:
        dicc[n] = None
    return dicc

print(dicc_test())
相关问题