繁体   English   中英

如何从 python 字典中获取所有可能的键值对?

[英]how to get all possible key-value pairs from python dictionary?

d = {"a":[1,2,3], "b":4}

我正在尝试从d创建一个嵌套列表,其中包含所有键值对:

[["a",1],["a",2],["a",3],["b",4]]

我应该在这里使用列表推导,还是有更 Pythonic 的方式?

您可以使用列表推导:

d = {"a":[1,2,3], "b":4}
r = [[a, i] for a, b in d.items() for i in (b if isinstance(b, list) else [b])]

Output:

[['a', 1], ['a', 2], ['a', 3], ['b', 4]]

您不能使用列表理解,因为它必须从一个项目到另一个项目 map。 您打算创建比dict中更多的项目:

d = {"a":[1,2,3], "b":4}
result = []
for k,v in d.items():
    if isinstance(v, list):
        for item in v:
            result.append([k,item])
    else:
        result.append([k,v])
def di(my_dictionary):
    for key in my_dictionary:
        if type(my_dictionary[key]) == list:
            for item in my_dictionary[key]:
                yield [key,item]
        else:
            yield [key,my_dictionary[key]]

只需使用它

d = {"a":[1,2,3], "b":4}
list(di(d))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM