Python追加返回字典而不是列表

mun*_*ine 3 python dictionary list python-3.x

下面的附加工作正常,但它返回一个列表而不是字典。因此,当我尝试使用 tag.items() 提取键/值时,它告诉我有一个

ValueError:没有足够的值来解压(期望 2,得到 1)

这是正确的错误消息,因为它是一个列表,因为 all_tags.append 创建了一个列表。我如何将其作为字典返回?

tags = get_all_tags(client_tags)

for tag in tags:
    tag_key, tag_value = tag.items()
Run Code Online (Sandbox Code Playgroud)

...

def get_all_tags(client_tags):

    for tag_key, tag_value in client_tags.items():
        if re.match(TAG_KEY_PATTERN, tag_key):
           all_tags.append({tag_key: tag_value})

    return all_tags
Run Code Online (Sandbox Code Playgroud)

Sha*_*ger 5

listdict开始不要将其设为 a ,只需dict首先将其设为 a:

def get_all_tags(client_tags):
    all_tags = {}
    for tag_key, tag_value in client_tags.items():
        if re.match(TAG_KEY_PATTERN, tag_key):
           all_tags[tag_key] = tag_value

    return all_tags
Run Code Online (Sandbox Code Playgroud)

或者作为使用理解的单行dict

def get_all_tags(client_tags):
    return {k: v for k, v in client_tags.items() if re.match(TAG_KEY_PATTERN, k)}
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,使用它的循环都是:

for tag_key, tag_value in tags.items():
    ...
Run Code Online (Sandbox Code Playgroud)