TypeError:'迭代工具。组合对象不可订阅 [英] TypeError: 'itertools.combinations' object is not subscriptable

查看:0
本文介绍了TypeError:'迭代工具。组合对象不可订阅的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试运行时:

temp = (twoset2[x][i][0]-twoset[x][i][1])

我得到:

TypeError:无法订阅""iterTos.Companies""对象

""

我的代码:

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))。我想访问每个单独的坐标,然后取xy之间的差值并将其放入DSET中,但在尝试运行时收到上述错误。

请帮帮忙!

推荐答案

itertools.combinations返回生成器而不是列表。这意味着您可以遍历它,但不能像您尝试的那样使用索引逐个元素地访问它。

相反,您可以按如下方式获得每个组合:

import itertools
for combination in itertools.combinations([1,2,3], 2):
    print combination

这将提供:

(1, 2)
(1, 3)
(2, 3)

这篇关于TypeError:'迭代工具。组合对象不可订阅的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆