使用可变数量的 for 循环创建元组

2024-06-18

Given n and k,我需要创建所有长度的元组k其条目来自range(n)(0 到 n-1),使得元组的条目按字典顺序排列,并且有特定格式的括号。具体来说,元组从内到外每对都用括号括起来。

例如,如果n=3 and k=4,那么我希望输出包含类似的内容(((0,0),1),2), but not就像是(((0,0),2),1).

下面的代码适用于这个特定的实例。问题是我不知道如何概括k, 哪一个是数量for loops在下面的代码中。我只能针对特定的情况执行此操作k, like k=4这里。我真的需要能够做到这一点any的价值k.

n=3
k=4
my_list = []
for a in range(n):
    x = a
    for b in range(a,n):
        y = (x,b)
        for c in range(b,n):
            z = (y,c)
            for d in range(c,n):
                w = (z,d)
                my_list.append(w)
print my_list

Output:

[(((0, 0), 0), 0), (((0, 0), 0), 1), (((0, 0), 0), 2), (((0, 0), 1), 1), (((0, 0), 1), 2), (((0, 0), 2), 2), (((0, 1), 1), 1), (((0, 1), 1), 2), (((0, 1), 2), 2), (((0, 2), 2), 2), (((1, 1), 1), 1), (((1, 1), 1), 2), (((1, 1), 2), 2), (((1, 2), 2), 2), (((2, 2), 2), 2)]


另一种解决方案,基于itertools.combinations_with_replacement:

import itertools

n, k = 4, 4
f = lambda x: (f(x[:-1]), x[-1]) if len(x)>2 else x

print(*map(f, itertools.combinations_with_replacement(range(n), k)), sep='\n')

Prints:

(((0, 0), 0), 0)
(((0, 0), 0), 1)
(((0, 0), 0), 2)
(((0, 0), 0), 3)
(((0, 0), 1), 1)
...and so on.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用可变数量的 for 循环创建元组 的相关文章

  • 使用 Python 请求通过 POST 请求发送图像

    我目前正在尝试使用 Python 3 5 和 Requests 库来发送 POST 请求 此 POST 将发送一个图像文件 这是示例代码 import requests url https api address files files o
  • Numpy、Python:广播时自动扩展数组维度

    考虑以下 Numpy 数组广播练习 import numpy as np v np array 1 0 2 0 T column array A2 np random randn 2 10 2D array A3 np random ran
  • 使用python,自动确定用户当前时区的最准确方法是什么

    我已经验证 dateutils tz tzlocal 在heroku上不起作用 即使它起作用 它不是只是从计算机的操作系统中获取tz 而不是用户吗 如果没有存储用户时区 有什么方法可以确定请求来自哪里 我用的是烧瓶 Twitter 确实有一
  • 使用 Flask 在 Python 中进行长轮询

    我正在尝试在 Flask 框架下使用 JQuery 和 Python 进行长轮询 之前在 PHP 中做过长轮询 我尝试过以同样的方式进行 具有 while true 循环的脚本 函数 定期检查数据库中的更改 例如每 0 5 秒 并在发生更改
  • 输入到列表并找到同一输入python的最长条纹

    我正在编写一个程序 其中用户将值输入到列表中 直到想要结束为止 该程序将告诉用户他们输入的最长连续数字 例如 如果用户输入 7 7 7 6 6 4 end 则会得到输出 您的最长连胜次数为 3 因为 7 已连续输入 3 次 到目前为止 我有
  • 没有实例的 Django Formset

    In this http docs djangoproject com en dev topics forms modelforms inline formsetsDjango Doc 解释了如何创建一个表单集 该表单集允许您编辑属于特定作
  • 无法为从图中加载的张量变量赋值

    我已经训练了一个模型并保存了它 现在 我试图了解权重扰动如何影响其准确性 因此我需要修改权重变量中保存的值 本质上会为其添加一些噪声 问题是加载它们后我无法为它们分配值 我正在使用 TensorFlow 版本 1 2 1 来训练和加载模型
  • dulwich - 从远程仓库身份验证克隆

    我找不到有关此主题的任何资源 我需要通过提供用户名和密码从私有存储库进行克隆 然而 当它们作为关键字参数提供给 dulwich get client from path 时 会出现错误 提示 未知参数 用户名 这似乎是一件简单的事情 但我找
  • 为什么 argparse 给我一个列表中的列表?

    我刚刚注意到 argparse 中的一个行为让我困惑 我猜我以前从未将它用于愚蠢的文件列表 import argparse parser argparse ArgumentParser parser add argument multi a
  • tf.reshape 与 tf.contrib.layers.flatten

    所以我正在运行 CNN 来解决分类问题 我有 3 个转换层和 3 个池化层 P3是最后一个池化层的输出 其维度为 Batch size 4 12 48 我想将该矩阵展平为 Batch size 2304 尺寸矩阵 为2304 4 12 48
  • \ufeff 标识符中的无效字符

    我有以下代码 import urllib request try url https www google com search q test headers usag Mozilla 5 0 Macintosh Intel Mac OS
  • 从 Python 执行 PowerShell 脚本的最佳方式是什么

    之前关于该主题的所有帖子都涉及其用例的具体挑战 我认为 如果有一篇文章只讨论从 Python 运行 PowerShell 脚本的最简洁方法 并询问是否有人有比我发现的更好的解决方案 那将会很有用 绕过 PowerShell 尝试以与预期不同
  • 使用 spaCy 添加多个 EntityRuler(ValueError:'entity_ruler' 已存在于管道中)

    下列link https stackoverflow com questions 57477852 spacy matcher with entities spanning more than a single token展示如何在实体跨越
  • 如何在不重复代码的情况下定义 randint 元组?

    我经常使用 randint 元组来表示颜色值等 a b c randint 0 255 randint 0 255 randint 0 255 当我认为必须有更好的方法时 有吗 使用numpy 1 import numpy as np tu
  • PyPy/RPython 可以用来生成小型独立可执行文件吗?

    或者 可以使用 PyPy RPython 将 Python 编译 翻译为 C C 不需要 Python 运行时 我试图通过它的 RPython 和 Python 它的运行 它的编译和它的翻译来理解 PyPy 但有些失败 I have a h
  • django 返回记录的最近日期

    我正在尝试从用户的多个记录中返回最近的日期 当用户创建文档时 创建日期存储在 CreatedDocumentDetails 模型中 我无法返回用户最近创建的文档的日期 我问这个关于SO的问题 https stackoverflow com
  • 使用 Python for Linux 模拟按键事件

    我正在编写一个脚本来自动运行特定模型 当模型失败时 它会等待用户输入 Enter 键 我可以检测到模型何时失败 但我无法使用 python 在 Linux 上 来模拟按键事件 Windows 有 SendKeys 库来执行此操作 但我想知道
  • 显示进度的脚本?

    当我的 python 脚本处理大文件时 我想向用户显示进度 我见过脚本印刷 在 shell 中的同一光标位置显示进度 我怎样才能在Python中做到这一点 你应该使用python 进度条 http code google com p pyt
  • 如何使用 python 绘制具有两个斜率的线

    我使用下面的代码绘制一条具有两个斜率的线 如图所示 斜率应该在一定限制 limit 5 之后下降 我正在使用矢量化方法来设置斜率值 还有其他方法来设置斜率值 有人可以帮助我吗 import matplotlib pyplot as plt
  • 单元测试期间的 Python 日志捕获

    我正在尝试捕获在 python 单元测试过程中创建的日志 并在此处看到了代码 https stackoverflow com a 1049375 576333 https stackoverflow com a 1049375 576333

随机推荐