欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法

时间:2021-04-14 09:03:56|栏目:Python代码|点击:

发现问题

写python的时候出现了这个错,然后网上的教程的解决方案几乎都是――“重新定义下这个变量”,看的我一脸懵逼

后来发现原来是我把return None的方法赋给了变量,之后操作变量导致的,直接上代码

  for i in range(2000):
    read_lines = random.shuffle(read_lines) # 问题出在这里了
    print(read_lines)

咋一看是没啥问题,但是一运行就报错

>>TypeError: 'NoneType' object is not subscriptable

后来发现原来 random.shuffle这个函数他是return None的,但是我把他赋值给了read_lines,导致后续在操作read_lines的时候一直都是这个报错,包括打印read_lines也报错

这个是random库里面的代码(看他的注释里面说的是return None)

  def shuffle(self, x, random=None):
    """
    Shuffle list x in place, and return None.

    Optional argument random is a 0-argument function returning a
    random float in [0.0, 1.0); if it is the default None, the
    standard random.random will be used.

    """

    if random is None:
      randbelow = self._randbelow
      for i in reversed(range(1, len(x))):
        # pick an element in x[:i+1] with which to exchange x[i]
        j = randbelow(i+1)
        x[i], x[j] = x[j], x[i]
    else:
      _int = int
      for i in reversed(range(1, len(x))):
        # pick an element in x[:i+1] with which to exchange x[i]
        j = _int(random() * (i+1))
        x[i], x[j] = x[j], x[i]

解决方案

把上面一行赋值语句改掉就好了

  for i in range(2000):
    random.shuffle(read_lines)
    print(read_lines)
    content_list = []

总结

上一篇:基于Python的OCR实现示例

栏    目:Python代码

下一篇:Python中Django框架利用url来控制登录的方法

本文标题:python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法

本文地址:http://www.codeinn.net/misctech/100929.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有