从满足SAGE条件的列表中选择元组

时间:2017-05-12 15:53:19

标签: sage

我想创建一个程序,从满足特定条件的元组列表中选择某些元组。

以下是我要做的事情的基本情况:

首先,我创建一个长度为3个元组的列表,其中坐标集为[-1,1]:

Tupes=Tuples([-1,1],3)

现在我正在尝试提取坐标总和为1的那些成员。我已经尝试过运行

[Tupes[k] for k in len(Tupes) if sum([Tupes[k][j] for j in range(len(Tupes[k]))])==1]

但是我收到了错误

Error in lines 1-1 Traceback (most recent call last):   File "/projects/sage/sage-7.5/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 995, in execute exec compile(block+'\n', '', 'single') in namespace, locals File "", line 1, in <module> TypeError: 'int' object is not iterable

我是SAGE和python的新手,所以这只是我想要学习的练习。

1 个答案:

答案 0 :(得分:0)

比kcrisman的回答简单得多:

sage: Tupes=Tuples([-1,1],3)
sage: [k for k in Tupes if sum(k) == 1]
[[1, 1, -1], [1, -1, 1], [-1, 1, 1]]