TypeError: %: 'list' 和 'int' 不支持的操作数类型 |很有趣的案例?

Posted

技术标签:

【中文标题】TypeError: %: \'list\' 和 \'int\' 不支持的操作数类型 |很有趣的案例?【英文标题】:TypeError: unsupported operand type(s) for %: 'list' and 'int' | very interesting case?TypeError: %: 'list' 和 'int' 不支持的操作数类型 |很有趣的案例? 【发布时间】:2016-02-13 19:24:51 【问题描述】:
x_=[range(1,1000000)]
def pr(x_):
        for a in x_:
                # is type(a) int ?? 
                if a==2 or  a==3 :
                        x_[a-1]=0
                        continue
                for j in  range(2,a):
                        if(a%j==0):
                                x_[a-1]=0
                                break
pr(x_)

TypeError: %: 'list' 和 'int' 不支持的操作数类型 |很有趣的案例?

【问题讨论】:

【参考方案1】:
x_=[range(1,1000000)]

这将导致x_ 变为[[1, 2, 3, ... 999999]]。注意两个括号。这是一个双重嵌套列表,所以a 将是一个列表而不是一个 int。如果您只想将 a 设为 int 并将 x_ 设为 [1, 2, 3, ... 999999],请尝试

x_ = range(1,1000000)

【讨论】:

range() 函数的输出是一个列表吗? 取决于您使用的 Python 版本。在 2.7 中,它是一个列表。在 3.X 中,它是一个 range 对象,它的行为非常像一个列表,只是你不能分配给它。为了版本兼容性,您可以使用x_ = list(range(1, 10000000))

以上是关于TypeError: %: 'list' 和 'int' 不支持的操作数类型 |很有趣的案例?的主要内容,如果未能解决你的问题,请参考以下文章

TypeError: 不支持的操作数类型 -: 'list' 和 'list'

TypeError: 不支持的操作数类型 -: 'int' 和 'list'

TypeError: %: 'list' 和 'int' 不支持的操作数类型 |很有趣的案例?

2. python提示:TypeError: unhashable type: 'list'

如何在其上制作一个简单的 Django URLconf 和 reverse() 进行测试? (获取TypeError:不可散列的类型:'list')

如何克服 TypeError: unhashable type: 'list'