python - 我如何迭代带有 dict 的元组
问题描述
我在元组中有一些字典
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'])
为什么我的代码工作错误,我该如何解决?我将不胜感激
解决方案
您可以使用生成器表达式、列表推导和元组加法:
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')]
推荐阅读
- python - flake8 仅在 VS Code 中检查部分文件
- python - 为什么完全相同的函数在 ipython/jupyter 中表现不同?
- c# - 我正在做一个阶乘 c# 程序,但在第二次尝试后,它开始计算错误
- java - unknown.binary:AbsoluteLayout:jar:SNAPSHOT 的 POM 丢失,没有可用的依赖信息
- amazon-web-services - 如何为 AWS API Gateway 生成预签名 URL
- java - 在客户端计算机和 vps 服务器 JAVA 之间进行通信
- javascript - iframe 灯箱 - 分配给 CSS 选择器
- python - PyMongo获取过滤器必须是dict的实例,bson.son.SON错误
- python - unittest:如何在多次测试一个类时处理线程安全的单例
- arrays - 如何转换 hashSet
到arrayListOf?