【问题标题】:How can I get every element from dict value and list of tuples and make one tuple from it如何从 dict 值和元组列表中获取每个元素并从中创建一个元组
【发布时间】:2019-09-22 23:44:26
【问题描述】:

我有一个具有下一个结构的字典:

a = {'test_1': 1, 'test_2': 2}

我有第二个字典,其中包含元组列表,例如键“size_measures_multi”的值:

b = [{'row_n': 1, 'row_section': None, 'name': 'name', 'value_1': 'qwe', 'key_1': 'test', 'value_2': [('1', 'some_value', 'some_value'), ('2', 'some_value', 'some_value')]}, {'row_n': 2, 'row_section': None, 'some_value_1': 'some_name, 'some_value_2': 'test', 'value_3': 'text', 'value_4': [('167,86', 'cm', 'netto'), ('1', 'cm', 'netto')]}]

我需要从 dict 'a' 中获取每个值,并从 dict 'b' 列表中获取元组列表中的每个第一个元素,按 size_measures_multi 就像一个键一样,并从中创建一个元组。另外,我需要将它附加到一些空列表中。

我期待的结果

结果=[(136873521, '1', '2'), (136873857, '167,86', '1')]

【问题讨论】:

    标签: python


    【解决方案1】:

    您可能不需要使用for row in b,因为您已经使用element 循环了b。您只需要在append 函数之后删除它和列表[] 括号,它应该可以正常工作。

    a = {'FORD#BE8Z9278-A': 136873521, 'FORD#CN1G-6L713-BC': 136873857}
    b = [
            {'row_n': 1, 'row_section': None, 'nomenclature_name': 'name', 'article': 'BE8Z9278-A', 'TM': 'FORD',
                'size_measures_multi': [('1', 'cm', 'netto'), ('2', 'cm', 'netto')]
            },
            {'row_n': 2, 'row_section': None, 'nomenclature_name': 'some_name', 'article': 'CN1G-6L713-BC', 'TM': 'FORD',
                'size_measures_multi': [('167,86', 'cm', 'netto'), ('1', 'cm', 'netto')]
            }
        ]
    
    result = []
    for element in b:
        new_key = "{}#{}".format(element['TM'], element['article']) # Here i get 'FORD#BE8Z9278-A' for example
        result.append((a[new_key],) + tuple(item[0] for item in element['size_measures_multi']))
    
    print(result)
    

    【讨论】:

    • 是的,你说得对。也许我需要阅读更多关于 for 循环和理解的信息。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    相关资源
    最近更新 更多