2008-12-01 23 views

回答

14

你问这个吗?

[ (i,j) for i in range(1,3) for j in range(1,5) ] 
+0

是的,先生,我正在问。我不知道是否有可能以及使用什么语法,谢谢。 – 2008-12-01 03:06:44

+0

甜!我完全错过了这个功能。 – 2008-12-01 09:49:30

2

这似乎做你的描述:

[A,B]的范围内(1,3)为b在范围(1,5)]

更新:讨厌鬼!在发布之前,应该重新加载页面以查看S.Lott的答案。嗯......如何做一点点增值?也许是对Python交互模式有用性的一个简短证明。

我最近来自Perl的背景,所以遇到这样的问题时,我发现在命令行键入“python”并进入交互模式非常有帮助,并且只需a)开始尝试,并且b)通过点击向上箭头和调整我以前的尝试,直到我得到我想要的。任何时候我对某些关键字都很朦胧,帮助就在眼前。只需输入:help(“some_keyword”),阅读摘要,然后点击“Q”,我就可以直接与python解释器交谈了。

建议如果你是初学者而不使用它。

7

笛卡尔积在itertools module(2.6)中。

>>> import itertools 
>>> list(itertools.product(range(1, 3), range(1, 5))) 
[(1, 1), (1, 2), (1, 3), (1, 4), (2, 1), (2, 2), (2, 3), (2, 4)] 
4

有关嵌套理解有趣的事实:它模仿嵌套“for”循环,所以内部的人可以从外部的使用价值。这在笛卡尔产品案例中没有用处,但很好理解。例如:

[ (i,j) for i in range(10) for j in range(i) ] 

生成所有对(i,j)其中0>=i>j>10

相关问题