将混合嵌套列表转换为嵌套元组

2023-12-15

如果我有

easy_nested_list = [['foo', 'bar'], ['foofoo', 'barbar']]

并希望拥有

(('foo', 'bar'), ('foofoo', 'barbar'))

I can do

tuple(tuple(i) for i in easy_nested_list)

但如果我有

mixed_nested_list = [['foo', 'bar'], ['foofoo', ['foo', 'bar']],'some', 2, 3]

并想以此构建一个元组,我不知道如何开始。

如果能得到:

(('foo', 'bar'), ('foofoo', ('foo', 'bar')), 'some', 2, 3)

第一个问题是 Python 将我的字符串转换为每个字符的元组。第二件事是我得到

TypeError: 'int' object is not iterable

递归转换,并测试列表:

def to_tuple(lst):
    return tuple(to_tuple(i) if isinstance(i, list) else i for i in lst)

这会为给定列表生成一个元组,但会转换任何嵌套的list使用递归调用的对象。

Demo:

>>> def to_tuple(lst):
...     return tuple(to_tuple(i) if isinstance(i, list) else i for i in lst)
... 
>>> mixed_nested_list = [['foo', 'bar'], ['foofoo', ['foo', 'bar']],'some', 2, 3]
>>> to_tuple(mixed_nested_list)
(('foo', 'bar'), ('foofoo', ('foo', 'bar')), 'some', 2, 3)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将混合嵌套列表转换为嵌套元组 的相关文章

随机推荐

  • 未找到整数 parseInt 方法

    我正在尝试在这段代码中测试一个简单的方法 您在其中使用接收参数的方法 正在发生的问题是Integer解析 int 方法 命令提示符给出的错误是 java 24 error cannot find symbol cholo Integer p
  • 清除 QGraphicsScene 中的小部件:崩溃

    我有一个 QGraphicsScene 里面有一个 QPushButton 清除这个场景将使我的应用程序崩溃 有没有正确的方法来使用 QWidget 清除场景 单击按钮时以下代码会崩溃 include
  • python:multiprocessing.Pipe 和重定向标准输出

    我在用multiprocessing包生成第二个进程 我想将 stdout 和 stderr 重定向到第一个进程 我在用multiprocessing Pipe object dup2 output pipe fileno 1 Where
  • VS 2010 Ultimate:将 ProteusDebugEngine 调试器附加到进程失败

    当将 C NET 4 项目加载到我的主机 Win 7 Ultimate 64 位 上的 VS 2010 Ultimate 中时 我收到错误消息 Attaching the ProteusDebugEngine debugger to pro
  • 使用“.gitattributes”文件修复 Git 存储库中的行结尾

    需要修复什么 我有一个包含单个 md文件 其中包含我正在写的一篇文章 我在几台不同的计算机上编辑该文件 其中一台运行 Linux 另一台运行 Windows 看着一个git diff现在在 Windows 中我做了一些更改 我可以看到我的文
  • @RequestMapping 未正确映射

    我正在尝试设置一个控制器 但不幸的是无法查看输出 一切都正确渲染 当我去http localhost 8080 CMT content edit我收到 404 页面 从 Netbeans 运行我的应用程序会转到http localhost
  • 多对多 Ajax 表单(Symfony2 表单)

    我在 mongodb 中玩家和锦标赛之间存在多对多关系 我希望能够一次将许多玩家添加到锦标赛中 如果没有 ajax 这很简单 但我们有一个包含数千名玩家的数据库 因此表单选择变得巨大 我们想为此使用 ajax 是否可以创建一个小部件 带有j
  • 创建安装程序:从注册表项读取安装路径(例如 wix/installshield/nsis)

    我想创建我的程序的安装程序 但由于安装相当复杂 我需要比 installshield 限量版更高级的东西 我必须从当前的安装程序中运行另一个安装程序 用户是否按 取消 或安装该程序并不重要 我只需要运行它即可 我必须在用户计算机上安装一个包
  • XMl 解析中的空指针异常

    我需要解析 Xml 文档并将值存储在文本文件中 当我解析普通数据 如果所有标签都有数据 时 它工作正常 但如果任何标签没有数据 那么它会抛出我需要的 空指针异常 要做的 为了避免空指针异常 请建议我使用示例代码 示例 XML
  • 无法使用 Laravel SMTP 驱动程序将邮件发送到 gmail 帐户并且没有收到错误

    我正在 Localhost 中构建 Laravel 5 8 应用程序 我这样配置我的 env 文件 MAIL DRIVER smtp MAIL HOST mail mydomain com MAIL PORT 465 took from m
  • 隐式转换没有警告

    g sizeofint cpp std c 11 Wconversion Wall Wextra Werror pedantic errors include
  • Django 的 Cron 示例

    我在互联网上搜索了 Django 中计划作业的工作示例 但我只能找到如何做 但没有给出例子 有人可以分享 Django 框架使用 cron 运行计划任务的工作示例吗 首先创建一个自定义管理命令 该命令将用于将任务添加到 crontab 这是
  • 尝试在 Microsoft Access 中制作高效的日历

    我正在开发一个设备管理系统 前端使用 MS Access mdb 文件 后端使用 SQL Server 2008 如果需要 我可以将前端转换为 MS Access 2010 文件 我创建了一个日历表单 用户可以在其中查看哪些设备已预订 注销
  • 从 Outlook 加载项中获取 HTTP

    我需要调用外部 Web 服务 以便我的外接程序与我们公司的 Java servlet 进行通信 我尝试使用 JavaScriptXMLHttpRequest var http new XMLHttpRequest http open GET
  • 在 Scala 常规类中使用 Lenses

    大多数流行的 Scala JSON 库都能够序列化和反序列化为案例类 不幸的是 在 Scala 2 11 发布之前 案例类可以拥有的参数数量是有限制的 最多 22 个 作为超过此限制的解决方法 可以使用常规类 例如 如何使用 non cas
  • 从具有重复键的字符串创建 dict/json Python

    我有一个可以解析为 JSON 或 dict 对象的字符串 我的字符串变量如下所示 my string variable a 1 b b1 1 b2 2 b b1 3 b2 2
  • ggplot2 geom_smooth 线未显示在我的图表上

    我正在尝试使用绘制的数据添加一条线geom smooth 但我遇到了困难 这是我的代码 plot BG ggplot data geom point aes x Mass LT y BG colour factor Temp f plot
  • Active Directory PrimaryContext.ValidateCredentials 域消歧

    我正在处理两个域 一个是受信任的域 一个域上可能有一个 JohnSmith 另一个域上可能有另一个 JohnSmith 这两个人都需要登录我的应用程序 我的问题 我传入哪个域并不重要 此代码返回 true 我如何知道哪个 JohnSmith
  • 运行“adb shell wm Density 240”更改 Android 设备密度时出错

    我想调整 Android 设备上的屏幕大小 当我运行以下命令时 adb shell wm density 240 or adb shell wm size 800x480 我收到错误 system bin sh wm not found 为
  • 将混合嵌套列表转换为嵌套元组

    如果我有 easy nested list foo bar foofoo barbar 并希望拥有 foo bar foofoo barbar I can do tuple tuple i for i in easy nested list