如何从包含列表和字符串的嵌套列表中找到所有可能的组合?

2023-12-03

我试图从列表中获取所有可能的模式,例如:

input_x = ['1', ['2', '2x'], '3', '4', ['5', '5x']]

正如我们所看到的,它有 2 个嵌套列表['2', '2x'] and ['5', '5x'] here.

这意味着所有可能的模式为 4(2 个案例 x 2 个案例),预期输出为:

output1 = ['1','2' , '3', '4',  '5']
output2 = ['1','2x', '3', '4',  '5']
output3 = ['1','2' , '3', '4', '5x']
output4 = ['1','2x', '3', '4', '5x']

我尝试搜索如何搜索,但找不到任何示例(因为我不知道要搜索的“关键字”)

我认为 python 有内部库/方法来处理它。


实现此目的的一种方法是通过使用itertools.product。但要使用它,您需要首先将列表中的单个元素包装到另一个列表。

例如,首先我们需要转换您的列表:

['1', ['2', '2x'], '3', '4', ['5', '5x']]

to:

[['1'], ['2', '2x'], ['3'], ['4'], ['5', '5x']]

这可以通过以下列表理解来完成:

formatted_list = [(l if isinstance(l, list) else [l]) for l in my_list]
# Here `formatted_list` is containing the elements in your desired format, i.e.:
#    [['1'], ['2', '2x'], ['3'], ['4'], ['5', '5x']]

现在打电话itertools.product在上面的解压版本上list:

>>> from itertools import product

#                v  `*` is used to unpack the `formatted_list` list
>>> list(product(*formatted_list))
[('1', '2', '3', '4', '5'), ('1', '2', '3', '4', '5x'), ('1', '2x', '3', '4', '5'), ('1', '2x', '3', '4', '5x')]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从包含列表和字符串的嵌套列表中找到所有可能的组合? 的相关文章

  • 具有多处理功能的 Python 代码无法在 Windows 上运行

    以下简单的绝对初学者代码在 Ubuntu 14 04 Python 2 7 6 和 Cygwin Python 2 7 8 上运行 100 但在 Windows 64 位 Python 2 7 8 上挂起 我使用另一个片段观察到了同样的情况
  • Python:记录垃圾收集器

    我有一个 python 应用程序 有一些性能问题 我想将垃圾收集器的事件 特别是何时调用 添加到我的日志中 是否可以 thanks http docs python org library gc html gc set debug http
  • 底图上的子图

    我有一张英国地图和 121 个地点 每个地点有 3 个值 我想绘制 121 个位置中每个位置的三个值的小条形图 目前 这些值绘制为markersize属性 看起来像这样 密集恐惧症情节 https i stack imgur com 5fv
  • 为什么 tkinter / window.update 在我的程序中随着时间的推移变得更慢?

    我发现当我调用 window update 时 当向窗口写入的内容较少时 它的运行速度会更快 但后来 当我向窗口写入更多元素时 window update 需要更长的时间 请参阅下面的我的代码 您可以看到它在更新窗口之前一次向屏幕 100
  • 子进程改变目录

    我想在子目录 超级目录中执行脚本 我需要首先进入该子目录 超级目录 我无法得到subprocess进入我的子目录 tducin localhost Projekty tests ve python Python 2 7 4 default
  • Python的reduce()短路了吗?

    If I do result reduce operator and False 1000 得到第一个结果后它会停止吗 自从False anything False 相似地 result reduce operator or True 10
  • conda 无法从 yml 创建环境

    我尝试运行下面的代码来从 YAML 文件创建虚拟 Python 环境 我在 Ubuntu 服务器上的命令行中运行代码 虚拟环境名为 py36 当我运行下面的代码时 我收到下面的消息 环境也没有被创建 这个问题是因为我有几个必须使用 pip
  • 如何从谷歌云存储桶读取音频文件并在datalab笔记本中使用ipd播放

    我想在数据实验室笔记本中播放我从谷歌云存储桶中读取的声音文件 这个怎么做 import numpy as np import IPython display as ipd import librosa import soundfile as
  • 字典中的列表,Python 中的循环

    我有以下代码 TYPES hotmail type hotmail lookup mixed dkim no signatures S Return Path email protected cdn cgi l email protecti
  • 如何动态访问数据帧列表中的特定属性

    我有一个数据 它是数据框的列表 我正在尝试访问列表中每个数据帧内的特定属性 可以提取特定属性DP UniqueId使用下面的代码 gt attr new data A AA SpotfireColumnMetaData DP UniqueI
  • Python 正则表达式部分匹配或“hitEnd”

    我正在编写一个扫描器 因此我将任意字符串与正则表达式规则列表进行匹配 如果我可以模拟 Java hitEnd 功能 不仅知道正则表达式何时不匹配 还知道何时匹配 这将非常有用 can t匹配 当正则表达式匹配器在决定拒绝输入之前到达输入末尾
  • 在 Flask (WSGI) 中使用全局单例,我是否需要担心竞争条件? [复制]

    这个问题在这里已经有答案了 Flask 的 hello world 演示是 from flask import Flask app Flask name app route def hello return Hello World if n
  • 为 Networkx 图添加标题?

    我希望我的代码创建一个带有标题的图 使用下面的代码 可以创建绘图 但没有标题 有人可以告诉我我做错了什么吗 import pandas as pd import networkx as nx from networkx algorithms
  • 用Python中的嵌套for循环替换重复的if语句?

    在我编写的下面的代码中 n 4 所以有五个 if 语句 所以如果我想将 n 增加到 比如说 10 那么就会有很多 if 语句 因此我的问题是 如何用更优雅的东西替换所有 if 语句 n p 4 5 number of trials prob
  • Jupyter Notebook:没有名为 pandas 的模块

    我搜索了其他问题 但没有找到任何有帮助的内容 大多数只是建议您使用 conda 或 pip 安装 pandas 在我的 jupyter 笔记本中 我试图导入 pandas import pandas as pd 但我收到以下错误 Modul
  • SQLAlchemy:避免声明式样式类定义中的重复

    我正在使用 SQLAlchemy 并且我的对象模型中的许多类具有相同的两个属性 id 和 整数和主键 以及名称 字符串 我试图避免在每个类中声明它们 如下所示 class C1 declarative base id Column Inte
  • 获取调用者文件的绝对路径

    假设我在不同的目录中有两个文件 1 py 比如说 在C FIRST FOLDER 1 py and 2 py 比如说 在C SECOND FOLDER 2 py 文件1 py进口2 py using sys path insert 0 pa
  • issubclass() 对从不同路径导入的同一类返回 False

    目的是实现某种插件框架 其中插件是同一基类 即 A 的子类 即 B 基类使用标准导入加载 而子类使用 imp load module 从众所周知的包 即 pkg 的路径加载 pkg init py mod1 py class A mod2
  • 在Python中从日期时间中减去秒

    我有一个 int 变量 它实际上是秒 让我们调用这个秒数X 我需要得到当前日期和时间 以日期时间格式 减去的结果X秒 Example If X是 65 当前日期是2014 06 03 15 45 00 那么我需要得到结果2014 06 03
  • Python 枚举子集迭代

    我想迭代以下枚举的子集 class Items enum Enum item1 0 item2 1 item3 2 item4 3 item5 4 item6 5 item7 6 item8 7 说我想 for item in Items

随机推荐

  • C++ 文件处理:ios::app 和 ios::ate 之间的区别?

    有什么区别ios ate and ios app写入文件时 在我看来 ios app使您能够在文件中移动 而ios ate它只能在文件末尾读 写 它是否正确 事实恰恰相反 什么时候ios ate设置后 初始位置将是文件末尾 但此后您可以自由
  • Graphics.DrawString 打印文档宽度的中心

    我正在尝试将字符串放在打印文档的中心 我已经对图像执行了以下操作 它可以工作 但对于字符串似乎不起作用 这是我用来使图像居中的代码 e Graphics DrawImage logo e MarginBounds Width 2 logo
  • process.communicate 和 getche() 失败

    我正在尝试自动执行用 C 编写的交互式命令行工具 启动时 二进制文件等待字母 S Q 或 P 状态 退出或暂停 它使用非标准 msvcrt 函数 getche 来获取击键 而不是例如 gets 而无需用户按 Enter 键 我尝试以标准方式
  • 使用 Automator.app 逐行读取文本文件

    我是编码新手 所以请耐心等待 我已经使用 Automator OSX 创建了一个工作流程 效果很好 我遇到的唯一问题是我希望它在多个输入上运行 即作为批处理 我已经插入了循环操作 但我遇到的问题是每次更改初始输入 我想使用 applescr
  • 在 android 中命名我的应用程序

    我想我已经老了 因为我确信要给你的应用程序命名 你必须填写清单的这一部分
  • 搜索包含单词组合的单元格

    我正在尝试找到一种方法来搜索包含任意顺序的多个单词的单元格 示例 在输入框中我输入 搜索单词 我现在想要搜索包含这三个单词的单元格 尽管它们不必按该顺序出现 也不必彼此相邻 希望你明白我的意思 我有这段代码 可以很好地找到一个单词 但我被困
  • XGBoost。如何从 xgb.dump 获取类别概率(multi:softprob 目标)

    我使用 XGBoost 进行了 3 类分类预测 下一步是获取树模型 由 xgb dump 打印 并在 net 生产系统中使用它 我真的不明白如何从休假中的单个值中获得 3 维概率值 code 1107 booster 148 0 f24 l
  • 为什么即使在这段代码中,该脚本也会影响我的 Rails 3 应用程序上的所有内容?

    我有一个第三方脚本 该脚本的作用是在图像上添加水印以表明它受版权保护 这是我在视图中使用的代码 但无论如何 该脚本适用于所有帖子 当我仅使用文本测试它时 它工作正常
  • EC2 的标签强制执行 - AWS

    我想为 EC2 强制执行标签 这意味着 如果没有某些标签 则不应允许启动 EC2 实例 我有一个使用 IAM 策略的解决方案 但我不希望它与 IAM 策略一起使用 寻找其他方法来强制执行标签 请指教 Thanks 我你的账户是AWS 组织的
  • JAX-WS WebServiceContext 保持为 null(注释注入失败)

    我尝试将我的应用程序部署到 Tomcat 6 with Metro Jersey 和 Glassfish 3 1 2 但访问 WebServiceContext 资源总是会导致空指针异常 except当我使用自动生成的 Glassfish
  • 将对象数据从一个活动传输到另一活动

    我有一个 EmployeeInfo 类 如下所示 public class EmployeeInfo private int id Employee ID private String name Employee Name private
  • Actionscript 3.0:为什么将移动对象的代码与对象本身分离是个好主意(例如 Ball 和 Ball Mind)

    我的问题几乎就在标题中 为什么我一直在 ActionScript 3 0 中阅读 在编写代码时将 思想 与 对象 分开是一个好主意 感谢您的帮助 这让我很困惑 如果你问为什么图形与定位 运动和物理分离 拿我画的这棵树来说 在树上你会看到En
  • 使用同站cookie属性防止CSRF

    我在网上冲浪 发现了一篇文章使用同站cookie属性防止CSRF 在链接维护时 我们需要添加 Set Cookie 标头 设置 Cookie 键 值 仅 Http SameSite 严格 现在我的问题是 我想在我的 ASP NET 站点中的
  • WebBrowser 控件不响应 InvokeMember("click")

    在我度过了5天的生活之后 我正要放弃这个 但在此之前我咨询过一次专家 我有一个 WebBrowser 控件 可以加载网页 并以编程方式抓取其内容 在 IE 或任何其他浏览器 中单击页面中的特定菜单项会弹出 文件打开 对话框 但是在 WebB
  • 使用matter.js引擎库编写的plinko游戏中,如何让小球始终落入预先规划的位置

    请以下面的代码为例 如何让球每次都看似随机落入底部的第三个空间位置 我能想到的是在球下落的过程中不断判断它的碰撞位置 让球朝着目标移动 但如何让移动过程显得自然随机却难倒了我 您可以在以下位置查看 https codesandbox io
  • AWS Cognito - 用户丢失“不可变”属性“email_verified”

    使用 Cognito 几个月后 用户池中的一些用户现在丢失了 email verified 属性 我不明白它是如何丢失或如何恢复的 症状是 用户仍然可以登录 用户密码无法更改 例如通过JS SDK 更改密码 产生错误 x amzn erro
  • iTextSharp 文本字段将字体设置为粗体

    对于文本字段对象 我想将样式更改为粗体 我已经创建了 arial 字体 因为它不是 BaseFont 对象的默认字体 显然 TextField 对象仅将 BaseFont 作为有效字体 我想知道如何将分配给文本字段的字体样式更改为粗体 有没
  • VB 文本框上的小数点验证

    在按键事件下 我有一个验证输入字符的函数 这是我的代码 Public Function vNum2 val As Object Dim result As Boolean False Dim allowedChars As String 0
  • Flex 弹出窗口的定位/滚动问题

    我正在尝试解决使用 PopUpManager 在 Flex 中定位时遇到的具体问题 基本上我想创建一个将与父容器一起滚动的弹出窗口 这是必要的 因为父容器很大并且如果用户的浏览器窗口不够大 大多数情况下都是这种情况 他们必须使用容器的滚动条
  • 如何从包含列表和字符串的嵌套列表中找到所有可能的组合?

    我试图从列表中获取所有可能的模式 例如 input x 1 2 2x 3 4 5 5x 正如我们所看到的 它有 2 个嵌套列表 2 2x and 5 5x here 这意味着所有可能的模式为 4 2 个案例 x 2 个案例 预期输出为 ou