TypeError: 'itertools.combinations' object is not subscriptable
TypeError: 'itertools.combinations' object is not subscriptable
当我尝试 运行:
temp = (twoset2[x][i][0]-twoset[x][i][1])
我得到:
TypeError: 'itertools.combinations' object is not subscriptable
我的代码:
for x in range(0,64):
for i in range(0,1):
temp = (twoset2[x][i][0]-twoset[x][i][1])
DSET[counter2]= temp
temp = 0
counter2 += 1
基本上我想做的是:我有一个包含 2 个坐标元素子集的列表 (twoset2
)(例如:((2,0) (3,3)
)。我想访问每个单独的坐标,然后取 x
和 y
之间的差异并将其放入 DSET
,但是在尝试 运行 时出现上述错误。
请帮忙!
twoset2
不是列表;它是一个 itertools.combinations
对象(不支持索引):
>>> import itertools
>>> itertools.combinations([1, 2, 3], 2)
<itertools.combinations object at 0x01ACDC30>
>>>
>>> twoset2 = itertools.combinations([1, 2, 3], 2)
>>> twoset2[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'itertools.combinations' object is not subscriptable
>>>
如果你想要一个列表,你需要明确地将其转换成一个列表:
twoset2 = list(itertools.combinations(...))
itertools.combinations
returns 生成器而不是列表。这意味着您可以对其进行迭代,但不能像您尝试的那样使用索引逐个元素地访问它。
相反,您可以像这样获得每个组合:
import itertools
for combination in itertools.combinations([1,2,3], 2):
print combination
这给出:
(1, 2)
(1, 3)
(2, 3)
当我尝试 运行:
temp = (twoset2[x][i][0]-twoset[x][i][1])
我得到:
TypeError: 'itertools.combinations' object is not subscriptable
我的代码:
for x in range(0,64):
for i in range(0,1):
temp = (twoset2[x][i][0]-twoset[x][i][1])
DSET[counter2]= temp
temp = 0
counter2 += 1
基本上我想做的是:我有一个包含 2 个坐标元素子集的列表 (twoset2
)(例如:((2,0) (3,3)
)。我想访问每个单独的坐标,然后取 x
和 y
之间的差异并将其放入 DSET
,但是在尝试 运行 时出现上述错误。
请帮忙!
twoset2
不是列表;它是一个 itertools.combinations
对象(不支持索引):
>>> import itertools
>>> itertools.combinations([1, 2, 3], 2)
<itertools.combinations object at 0x01ACDC30>
>>>
>>> twoset2 = itertools.combinations([1, 2, 3], 2)
>>> twoset2[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'itertools.combinations' object is not subscriptable
>>>
如果你想要一个列表,你需要明确地将其转换成一个列表:
twoset2 = list(itertools.combinations(...))
itertools.combinations
returns 生成器而不是列表。这意味着您可以对其进行迭代,但不能像您尝试的那样使用索引逐个元素地访问它。
相反,您可以像这样获得每个组合:
import itertools
for combination in itertools.combinations([1,2,3], 2):
print combination
这给出:
(1, 2)
(1, 3)
(2, 3)