我该如何遍历带有dict的元组

时间:2019-09-22 21:41:02

标签: python

我在元组中有一些格言

 a = ({'row': 1, 'row_section': None, 'value_1': 'qwe', 'value_2': 'name', 'value_3': ' ', 'no_category': 'qwe', 'value_4': 'test', 'size_measures_multi': [('1', 'cm', 'value'), ('123', 'm', 'value'), ('1233', 'm', 'value')]})

例如,我不会使用键nomenclature_platform_id和元组列表中的每个第一个元素创建元组,例如,这些元组包含在键“ size_measures_multi”中

  

('qwe','1','123','1233')

     

('34110','1','21','28')

我尝试在元组中进行列表理解

tuple(a['v'], [item[0] for item in row['v']])

但是我没有预期的结果

  

('qwe',['1','123','1233'])

     

('34110',['1','21','28'])

为什么我的代码工作不正确,我该如何解决?我将很感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您可以使用生成器表达式,列表理解和元组添加:

a = ({'row_n': 1, 'row_section': None, 'nomenclature_platform_id': 'qwe', 'nomenclature_name': 'name', 'TM': ' ', 'no_category': 'orig_num Номер', 'article': 'num артикля', 'size_measures_multi': [('1', 'cm', 'brutto'), ('123', 'm', 'netto_brutto_unknown'), ('1233', 'm', 'netto_brutto_unknown')]}, {'row_n': 2, 'row_section': None, 'nomenclature_platform_id': '34110', 'nomenclature_name': 'Fuel MAX', 'TM': 'Fuel MAX', 'no_category': 'MAGNETICYW', 'article': 'MAGNETICYW', 'size_measures_multi': [('1', 'm', 'netto_brutto_unknown'), ('21', 'm', 'netto_brutto_unknown'), ('28', 'm', 'netto_brutto_unknown')]})

result = [(row['nomenclature_platform_id'],) + tuple(item[0] for item in row['size_measures_multi']) for row in a]

print(result)

输出:

[('qwe', '1', '123', '1233'), ('34110', '1', '21', '28')]