为什么dict不可用,但列表不是?

时间:2017-09-10 13:22:28

标签: python-3.x

三个用例:

1)Dict interests可以访问

interests = {}


def get_interests():
    print('interests:', interests)  # interests: {}
    interests['somekey'] = 123
    print('interests:', interests)  # interests: {'somekey': 123}

get_interests()

2)无法访问列表interests

interests = []

def get_interests():
    print('interests:', interests)  # UnboundLocalError: local variable 'interests' referenced before assignment
    interests += [123]
    print('interests:', interests)

get_interests()

3)如果是列表,如果我只是print,则可以使用

interests = []

def get_interests():
    print('interests:', interests)  # interests: []
    # interests += [123]
    # print('interests:', interests)

get_interests()

我错过了什么?

1 个答案:

答案 0 :(得分:4)

在列表中使用.append()进行尝试:

interests = []

def get_interests():
    print('interests:', interests)  # UnboundLocalError: local variable 'interests' referenced before assignment
    interests.append(123)
    print('interests:', interests)

get_interests()

你看到这种行为的原因是,通过使用+=运算符,你基本上告诉python:interests = interests + [123] - 它在范围内声明了一个名为“interest”的新变量该函数而不是修改全局变量“interest”。

通过使用.append()函数,您不是要创建新变量,而是修改全局变量。