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

标签 python python-3.x list dictionary

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

ValueError: not enough values to unpack (expect 2, got 1)

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

tags = get_all_tags(client_tags)

for tag in tags:
    tag_key, tag_value = tag.items()

...

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

最佳答案

首先不要将其设为 dictlist,只需首先创建一个 dict:

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

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

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

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

for tag_key, tag_value in tags.items():
    ...

关于Python追加返回字典而不是列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55526854/

相关文章:

python - 自定义选项卡中的 Django admin StackedInline

python-3.x - GtkSourceView2 等效的 Python3 模块

python - 在 pygame 中球不会从屏幕反弹

python - 获取两个二维列表之间的差异

Python concat字符串与列表

python - 使用 Mechanize 的密码保护网站

c# - 在 Visual Studio 上并行执行 Python 脚本和 C# 脚本

python - 在 R 或 Python 中转换数据类型

mysql - 插入元组会产生错误 : Not enough arguments for format string

javascript - 我怎样才能创建一个多重嵌套列表