python - 嵌套元组的展平
问题描述
你能展平这样的元组吗:
(42, (23, (22, (17, []))))
成为所有元素的一个元组:
(42,23,22,17)
?
解决方案
使用递归的解决方案:
tpl = (42, (23, (22, (17, []))))
def flatten(tpl):
if isinstance(tpl, (tuple, list)):
for v in tpl:
yield from flatten(v)
else:
yield tpl
print(tuple(flatten(tpl)))
印刷:
(42, 23, 22, 17)
推荐阅读
- imagemagick - ImageMagick 通过 xy 坐标获取像素颜色
- php - 图片未上传到 laravel 项目
- ios - 我们什么时候应该使用@property int 变量,什么时候应该使用非属性int 变量?
- hashmap - 格式化 AssertK 异常消息
- keycloak - 使用 Flask-OIDC 验证公共令牌(概念问题)
- php - PHP替换正确的标签
- python-3.x - 在有条件的行上聚合列
- performance - 使用相同的标签 label_join,label_replace 加入 prometheus 中的指标?
- reactjs - 出现错误:无法读取未定义的属性(读取“地图”)
- flutter - 在后台播放音频时如何获取 currentDuration?