极乐门资源网 Design By www.ioogu.com

发现问题

写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,typeerror错误, python错误处理,python,typeerror

极乐门资源网 Design By www.ioogu.com
极乐门资源网 免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
极乐门资源网 Design By www.ioogu.com

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

暂无python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法的评论...

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。