小编Sur*_*ren的帖子

拆分python字典以产生所有值的组合

my_dict = {'a':[1,2], 'b':[3], 'c':{'d':[4,5], 'e':[6,7]}}
Run Code Online (Sandbox Code Playgroud)

我需要从中得出所有组合,如下所示.

{'a':1, 'b':3, 'c':{'d':4, 'e':6}}
{'a':1, 'b':3, 'c':{'d':4, 'e':7}}
{'a':1, 'b':3, 'c':{'d':5, 'e':6}}
{'a':1, 'b':3, 'c':{'d':5, 'e':7}}
{'a':2, 'b':3, 'c':{'d':4, 'e':6}}
Run Code Online (Sandbox Code Playgroud)

等等.可以有任何级别的嵌套在这里
请让我知道如何实现这个
我试过的东西贴在下面但绝对无处可到

def gen_combinations(data):
    my_list =[]
    if isinstance(data, dict):
        for k, v in data.iteritems():
            if isinstance(v, dict):
                gen_combinations(v)
            elif isinstance(v, list):
                for i in range(len(v)):
                    temp_dict = data.copy()
                    temp_dict[k] = v[i]
                    print temp_dict

my_dict = {'a':[1,2], 'b':[3], 'c':{'d':[4,5], 'e':[6,7]}}

gen_combinations(my_dict)
Run Code Online (Sandbox Code Playgroud)

结果导致了

{'a': 1, 'c': {'e': [6, 7], 'd': [4, 5]}, 'b': [3]} …
Run Code Online (Sandbox Code Playgroud)

python dictionary

7
推荐指数
1
解决办法
190
查看次数

打印python嵌套字典的所有值的完整键路径

如果下面是我的嵌套字典,我想通过递归方式解析并打印所有值以及嵌套键的完整路径.

my_dict = {'attr':{'types':{'tag':{'name':'Tom', 'gender':'male'},'category':'employee'}}}
Run Code Online (Sandbox Code Playgroud)

预期产量:

Key structure : my_dict["attr"]["types"]["tag"]["name"]<br>
value : "Tom"<br>
Key structure : my_dict["attr"]["types"]["tag"]["gender"]<br>
value : "male"<br>
Key structure : my_dict["attr"]["types"]["category"]<br>
value : "employee"<br>
Run Code Online (Sandbox Code Playgroud)

我写了一个递归函数,但运行到这个:

my_dict = {'attr':{'types':{'tag':{'name':'Tom','gender':'male'},'category':'employee'}}}

def dict_path(path,my_dict):
    for k,v in my_dict.iteritems():
        if isinstance(v,dict):
            path=path+"_"+k
            dict_path(path,v)
        else:
            path=path+"_"+k
            print path,"=>",v

    return
dict_path("",my_dict)
Run Code Online (Sandbox Code Playgroud)

输出:

_attr_types_category => employee
_attr_types_category_tag_gender => male
_attr_types_category_tag_gender_name => Tom

在上面:对于男性,关键结构不应该包含"类别"如何保留正确的关键结构?

python dictionary nested

6
推荐指数
2
解决办法
3229
查看次数

从嵌套的 python 字典生成所有组合并将它们隔离

我的示例字典是:

sample_dict = {
    'company': {
        'employee': {
            'name': [
                {'explore': ["noname"],
                 'valid': ["john","tom"],
                 'boundary': ["aaaaaaaaaa"],
                 'negative': ["$"]}],
            'age': [
                {'explore': [200],
                 'valid': [20,30],
                 'boundary': [1,99],
                 'negative': [-1,100]}],
            'others':{
                'grade':[
                    {'explore': ["star"],
                     'valid': ["A","B"],
                     'boundary': ["C"],
                     'negative': ["AB"]}]}
    }
}}
Run Code Online (Sandbox Code Playgroud)

它是一个“后续”问题 ->拆分 python 字典以生成所有值组合
我想得到一个隔离的组合列表,如下所示

有效组合:[仅从有效数据列表中生成]
COMPLETE OUTPUT for VALID类别 :

{'company': {'employee': {'age': 20}, 'name': 'john', 'others': {'grade': 'A'}}}
{'company': {'employee': {'age': 20}, 'name': 'john', 'others': {'grade': 'B'}}}
{'company': {'employee': {'age': 20}, 'name': 'tom', 'others': {'grade': 'A'}}} 
{'company': …
Run Code Online (Sandbox Code Playgroud)

python combinations dictionary nested permutation

-1
推荐指数
1
解决办法
653
查看次数

标签 统计

dictionary ×3

python ×3

nested ×2

combinations ×1

permutation ×1