itertool 中列表的条件笛卡尔积

2024-03-29

我有四个清单:

LISTA = ['A1', 'A2']
LISTB = ['B1_C', 'B2_D']
LISTC = ['C1', 'C2']
LISTD = ['D1', 'D2']

我想要得到的笛卡尔积LISTA and LISTB,然后根据 B 的值,我想添加 C 的乘积或 D 的乘积。

(A1 B1_C C1)
(A1 B1_C C2)
(A2 B1_C C1)
(A2 B1_C C2)
(A1 B2_D D1)
(A1 B2_D D2)
(A2 B2_D D1)
(A2 B2_D D2)

我可以得到第一部分itertools.product(LISTA, LISTB),但我一直在寻找itertools https://docs.python.org/2/library/itertools.html对于如何实现第二部分,我不确定最好的方法。建议?


您可以采取product将最后两个列表替换为range相同长度的对象,然后根据项目的最后一个字符选择最后两个列表中的一个LISTB:

from itertools import product

def func(lsta, lstb, lstc, lstd):
    for b, a, i in product(lstb, lsta, range(len(lstc))):
        yield a, b, lstc[i] if b.endswith('C') else lstd[i]

for tup in func(LISTA, LISTB, LISTC, LISTD):          
    print(tup)

('A1', 'B1_C', 'C1')
('A1', 'B1_C', 'C2')
('A2', 'B1_C', 'C1')
('A2', 'B1_C', 'C2')
('A1', 'B2_D', 'D1')
('A1', 'B2_D', 'D2')
('A2', 'B2_D', 'D1')
('A2', 'B2_D', 'D2')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

itertool 中列表的条件笛卡尔积 的相关文章

  • 使用sklearn宏f1-score作为tensorflow.keras中的指标

    我已经为tensorflow keras定义了自定义指标 以在每个时期之后计算宏f1分数 如下所示 from tensorflow import argmax as tf argmax from sklearn metric import
  • Jython - 使用 Spring,用 Python 编程?

    好吧 我在这方面完全是新手 所以 我知道 Spring 作为一个框架确实很好 而且我已经用 Python 编程有一段时间了 所以我想知道是否可以使用 Spring 框架但使用 Python 代码 我听说 Jython 可能是执行此操作的一个
  • 无法构建具有 int 输入的 Keras 层

    我有一个复杂的 keras 模型 其中一层是自定义预训练层 需要 int32 作为输入 该模型作为继承自 Model 的类实现 其实现如下 class MyModel tf keras models Model def init self
  • Pandas 中分组值的堆积直方图

    我正在尝试使用以下代码创建分组值的堆叠直方图 titanic groupby Survived Age hist stacked True 但我得到的直方图没有堆叠条形 如何在无需直接使用 matplotlib 或迭代组的情况下堆叠直方图的
  • Django 类视图:__init__

    我想要得到
  • 什么时候使用nonlocal关键字? [复制]

    这个问题在这里已经有答案了 我不明白为什么我可以在这里使用系列变量 def calculate mean series def mean new value series append new value total sum series
  • Python 替换嵌套 JSON 中的 None 值

    我一直在尝试替换下面 JSON 字典中的 None 值 我将如何遍历这个 json 并将 None 值替换为空字符串 我很难理解如何遍历嵌套 json 如果有人能帮我解决这个问题 我会很高兴 下面的嵌套 json 示例 或者在 python
  • Python——“对象布局”

    有人可以描述以下异常吗 什么是 对象布局 以及它是如何定义的 谢谢 Traceback most recent call last File test gui py line 5 in
  • 在 __init__ 中使用属性设置器

    如何在中使用属性设置器 init 没有 pylint 抱怨该属性已在外部定义 init 例如 以下代码仅产生一个异常 该异常被底部的 try 子句捕获 class CircleNotUsingSetterInInit object def
  • Django 1.7 makemigrations 将表重命名为 None

    我必须将一些模型从一个应用程序移动到另一个应用程序 并且我按照此答案中的说明进行操作https stackoverflow com a 26472482 188614 https stackoverflow com a 26472482 1
  • numpy:gzip 压缩文件的 fromfile

    我在用numpy fromfile构造一个数组 我可以将其传递给pandas DataFrame构造函数 import numpy as np import pandas as pd def read best file file kwar
  • 长异常链的优雅替代方案? [复制]

    这个问题在这里已经有答案了 很多时候我发现自己写的东西看起来像这样 try procedure a except WrongProcedureError try procedure b except WrongProcedureError
  • 如何将“实例键”添加到 keras 模型输入以在 gcloud ai-platform 中进行批量预测?

    我正在尝试添加 键 以匹配 Google AI Platform 的批量预测输出 但是我的模型输入只允许一个输入 看起来像这样 input tf keras layers Input shape max len x tf keras lay
  • python3导入找不到模块

    我正在尝试测试书中的一个例子 我得到了一个ImportError 该示例开始如下 from tkinter import from PP4E Gui Tools widgets import frame button entry 如果我放一
  • Python 元类有什么用?

    元类可以用其他方式做不到的事情做什么 Alex Martelli 表示 有些任务如果没有元类就无法完成Python 元类与类装饰器 https stackoverflow com questions 1779372 python metac
  • 无法在 AWS Lambda 上使用请求模块

    我需要在每天运行一次的 python 脚本中进行休息调用 我无法使用 AWS Lambda 将 requests 包打包到我的 python 包中 我收到错误 无法导入模块 lambda function 没有名为 lambda funct
  • 如何在plotly dash应用程序中编写数学符号?

    我想在绘图破折号应用程序中绘制数学符号 例如 我尝试过这个 import dash import dash html components as html app dash Dash name app layout html Div chi
  • 如何像 urllib 这样的模拟/存根 python 模块

    我需要测试一个需要使用 urllib urlopen 它也使用 urllib urlencode 查询外部服务器上的页面的函数 服务器可能宕机 页面可能发生变化 我不能依赖它进行测试 控制 urllib urlopen 返回内容的最佳方法是
  • 将时间戳合并到自定义时间段中

    我对熊猫相当陌生 并且遇到了障碍 我有一个包含时间戳的数据帧 我想在我的数据框中添加一列 其中包含自定义期间名称 字符串 例如 df pd DataFrame pd date range 01 01 00 00 periods 72 fre
  • Python 3 Tkinter 菜单小部件的回调似乎不按顺序

    我在使用 Tkinter 时遇到问题Menu小部件 没有菜单按钮 因此回调似乎不按顺序运行 这里有一个very最小的例子 Python 3 6 5 Windows 7 x64 from tkinter import root Tk popu

随机推荐

  • Android - 从HashMap中获取值

    我尝试在 Android 中搜索 HashMap 但出现问题 考虑这个例子 HashMap
  • 将 Android GoogleSignIn 与 GmailScopes.GMAIL_SEND (gmail api) 结合使用

    我想使用 GoogleSignIn 并使用 android 内部电子邮件地址 gmail 发送电子邮件 GoogleSignInOptions gso new GoogleSignInOptions Builder GoogleSignIn
  • 更改搜索栏中的键盘颜色和外观

    当用户点击搜索文本字段时 我想将键盘的颜色更改为黑色 我试图通过以下方式实现它UITextField textField UITextField appearance textField setKeyboardAppearance UIKe
  • jenkins中访问文件参数

    我正在从事多配置工作 回归 L1 在 Jenkins 中 其任务是运行 2 种测试 测试1和测试2 在多配置作业中 它会触发执行器作业 回归执行器 运行所选测试的脚本 这回归 L1作业被限制运行矩阵服务工作节点 而矩阵作业将在从节点中运行自
  • Python Regex - 查找html标签之间的字符串[重复]

    这个问题在这里已经有答案了 我正在尝试提取 Html 标签之间的字符串 我可以看到以前在堆栈溢出上也有人问过类似的问题 但我对 python 完全陌生 而且我很挣扎 所以如果我有 b Bold Stuff b 我想要一个正则表达式让我 Bo
  • 当我尝试向我的 S3 存储桶 (Node.js) 发送内容时 AWS 缺少凭证

    我从昨天开始就遇到这个问题 一直找不到解决方案 我正在尝试将某些内容发送到我的 S3 存储桶 但是当我尝试时 此消息出现在我的控制台中 CredentialsError Missing credentials in config messa
  • 在地图上绘制插值数据

    我有在美国切萨皮克湾不同地点采集的物种丰富度调查数据 我想以图形方式将这些数据呈现为 热图 我有一个纬度 经度坐标和丰富度值的数据框 我将其转换为SpatialPointsDataFrame并使用了autoKrige automap 包中的
  • 张量流“模块”对象没有属性“contrib”

    我使用pip方法安装了tensorflow 在python 2 7 debian linux上 如官方文档所示 https www tensorflow org versions r0 9 get started os setup html
  • aws apigateway lambda 始终返回 502

    我已经为我的代理服务器创建了 aws apigateway lambda 集成 当我向网关发出 get 请求时 请求已成功通过 lambda 函数也成功执行 并在输出流中写入响应 statusCode 为 200 但 apigateway
  • 以编程方式启动 EA

    我想通过 Windows 服务打开 EA 会话并在幕后执行一些操作 我使用 Repository API 但是不知道如何正确初始化它 EA Repository repository repository OpenFile C test e
  • 如何在 .ashx 上手动创建 ODataQueryOptions

    我想重建我的上一个项目 过去 我没有使用任何 Web API 我可以使用 ODataQueryOptions 来执行 filter orderby top skip 操作吗 对于我自己的 handler ashx 中的查询 就像是 var
  • e.preventdefault();不工作

    我真的很难得到e preventDefault 上班 这是我的代码 ListSnapshot a live click function e var url this attr href WebPartWPQ2 ms listviewtab
  • 在 MKMapView 上安装注释,同时保持用户位置居中

    我正在尝试将所有注释放入我的MKMapView同时将当前用户位置保持在地图中心 已经有很多参考资料 1 2 介绍如何缩小区域以适合地图上的注释 但它们会调整当前的中心位置 例如如果所有注释都位于我当前用户位置的东部 它将进行调整 以便当前用
  • 在现有数据库上使用 liquibase

    我们有一个正在生产的现有数据库 我们决定使用 liquibase 进行所有进一步更新并创建任何新数据库 例如开发或集成 我们根据现有的生产模式创建了 liquibase 脚本 以创建任何新的数据库 如开发 集成等 除了该脚本之外 我们还添加
  • 当终止使用 python 子进程 Popen 启动的进程时,如何关闭标准输出管道?

    我想知道当杀死在不同线程中启动的子进程时是否可以关闭通信管道 如果我不调用communicate 那么kill 将按预期工作 在一秒而不是五秒后终止进程 我发现了类似问题的讨论here http bugs python org issue4
  • 从绘图 3d 图中抓取相机位置

    我正在绘制 3D 图形并想要调整相机位置 对我来说最好的方法是使用查看器 根据需要缩放和旋转场景 然后以 JSON 形式获取相机位置并将其放入我的脚本中 该脚本生成图片以默认实现相同的位置 根据这条推文 https twitter com
  • 缓存反射属性 getter/setter 的最佳方法?

    我知道反射可能会很昂贵 我有一个经常获取 设置属性的类 我想到的一种方法是以某种方式缓存反射 我不确定我是否应该缓存表达式或在这里真正做什么 这就是我目前正在做的事情 typeof T GetProperty propName SetVal
  • 如何使用 ie8 检测文本输入何时发生变化

    我想检测文本输入何时发生变化 我尝试了这些 在 Firefox 中有效 但在 ie 8 中无效 taskSearch bind input function alert this val taskSearch live input func
  • 防止手动添加的库被ndk-build删除

    我有一个项目正在重用预编译的本机库 libocr so 但我没有源文件 我手动将库放在项目的 libs armeabi 上 一切正常 然后我需要为同一个项目创建一个新的本机库 我将源代码与 Android mk 文件一样放在 jni 文件夹
  • itertool 中列表的条件笛卡尔积

    我有四个清单 LISTA A1 A2 LISTB B1 C B2 D LISTC C1 C2 LISTD D1 D2 我想要得到的笛卡尔积LISTA and LISTB 然后根据 B 的值 我想添加 C 的乘积或 D 的乘积 A1 B1 C