python - 我如何从 dict 值和元组列表中获取每个元素并从中生成一个元组
问题描述
我有一个具有下一个结构的字典:
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' 中获取每个值,并通过 size_measures_multi 从 dict 'b' 列表中获取元组列表中的每个第一个元素,就像一个键一样,并从中创建一个元组。另外,我需要将它附加到一些空列表中。
结果出乎我的意料
结果=[(136873521, '1', '2'), (136873857, '167,86', '1')]
解决方案
您可能不需要使用for row in b
,因为您已经循环b
使用element
了。您只需要删除它和[]
after 函数中的列表括号,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)
推荐阅读
- azure-devops - 断开组织与 Azure Active Directory 的连接后丢失组织
- sql - SQL 三重内连接
- javascript - JS reduce: TypeError: Cannot create property at Array.reduce
- google-cloud-firestore - 如果“没有任何规则的 1 个月”已过期,我是否必须开始一个新项目?
- android - 从 viewpager 2 停止并释放 exoplayer
- javascript - 如何在一个页面中多次重用一段Javascript
- r - Plotly:如何制作灰度饼图?
- python - Django readonly_fields 不显示数据
- python - pyspark 查询和 sql pyspark 查询
- machine-learning - 在机器学习中使用 CNN 将图像特征和数字特征结合在一起的最佳方法是什么?