python-3.x - 展平包含其他类型对象的列表中的元组
问题描述
我有一个类似于 matrioska 的列表,幸运的是它确实达到了一种格式,即 [(),int]
例子:
[[('spring', 'flowers'), 1], [('spring', 'birds'), 1], [('autumn', 'leaves'), 3],[('autumn', 'mild'), 1], [('summer', 'sun'), 2]]
我试图得到这个:
[['spring', 'flowers', 1], ['spring', 'birds', 1], ['autumn', 'leaves', 3],['autumn', 'mild', 1], ['summer', 'sun', 2]]
我尝试使用以下公式解包元组:
[(a, *rest) for a, rest in list]
错误是: TypeError: 'int' object is not iterable
我还尝试将子列表中的元素分开,但无法保持将它们再次组合在一起的顺序:
season = list(x[0] for x in info if isinstance(x,tuple))
property = list(x[1] for x in info if isinstance(x,tuple))
times = list(x for x in info if isinstance(x,int))
解决方案
如果元素在语法上相等,则可以使用。
lst = [[('spring', 'flowers'), 1], [('spring', 'birds'), 1], [('autumn', 'leaves'), 3],[('autumn', 'mild'), 1], [('summer', 'sun'), 2]]
[[x[0][0], x[0][1], x[1]] for x in lst]
# [['spring', 'flowers', 1], ['spring', 'birds', 1], ['autumn', 'leaves', 3], ['autumn', 'mild', 1], ['summer', 'sun', 2]]
推荐阅读
- raster - Issue Converting HDF5 into raster format
- html - Images are not visible after hosting my website
- python - 如何按第二个元组元素对元组列表进行排序?
- python-3.x - Is it possible to read parquet files from S3 access point using pyarrow
- python - 在数组中找到最接近零的数字
- visual-studio - 如何处理 Nuget 依赖程序集的相对 HintPath?
- amazon-ec2 - Setting Turn server on EC2
- postgresql - psql命令和psql交互终端的区别
- swift - Modifying SwiftUI Views based on non-binary data / conditions?
- node.js - 无法在 Kubernetes 上使用 Node.Js 连接到 Elasticsearch(证书链中的自签名证书)