我想创建一个程序,从满足特定条件的元组列表中选择某些元组。
以下是我要做的事情的基本情况:
首先,我创建一个长度为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的新手,所以这只是我想要学习的练习。
答案 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]]