微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

动态嵌套循环 Python

如何解决动态嵌套循环 Python

这是我需要的数组:

N = 6
A = [[x,y,z] for x in range(N+1) for y in range(N+1) for z in range(N+1) if x+y+z== N]

是否有其他方法可以仅指定变量 N3 而不是 x,z?
我尝试了 []*3,但无法获得所需的输出

解决方法

您正在寻找iterttols.product

from itertools import product

N = 6
A = [(x,y,z) for x in range(N+1) for y in range(N+1) for z in range(N+1) if x+y+z== N]
B = [tup for tup in product(range(N+1),repeat=3) if sum(tup) == N]
print(A,B,A == B,sep='\n')

给出:

[(0,6),(0,1,5),2,4),3,3),4,2),5,1),6,0),(1,(2,(3,(4,(5,(6,0)]
[(0,0)]
True
,

使用itertools.combinations_with_replacement

from itertools import combinations_with_replacement
n = 6
k = 3

# If you want a list of tuples:
lst = [item for item in list(combinations_with_replacement(range(n),k)) if sum(item) == n]
print(lst)
# [(0,2)]

# If you want a list of lists:
lst = [list(item) for item in list(combinations_with_replacement(range(n),k)) if sum(item) == n]
print(lst)
# [[0,5],[0,4],3],[1,[2,2]]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?