当前位置: 首页 > 面试题库 >

TypeError:“范围”对象不支持项目分配

董霖
2023-03-14
问题内容

我正在查看一些python 2.x代码,并尝试将其翻译为,py 3.x但是我仍然停留在本节中。任何人都可以澄清出什么问题吗?

import random

emails = {
    "x": "[REDACTED]@hotmail.com",
    "x2": "[REDACTED]@hotmail.com",
    "x3": "[REDACTED]@hotmail.com"
}

people = emails.keys()

#generate a number for everyone
allocations = range(len(people))
random.shuffle(allocations)

这是给出的错误:

TypeError: 'range' object does not support item assignment

问题答案:

在Python 3中,range返回一个惰性序列对象-它不返回列表。无法重新排列范围对象中的元素,因此不能重新排列它。

改组之前将其转换为列表。

allocations = list(range(len(people)))


 类似资料:
  • 问题内容: 我尝试运行以下代码: 但是我在最后一行出现错误: 似乎我无法分配张量,如何解决? 问题答案: 通常,TensorFlow张量对象不可分配*,因此您不能在分配的左侧使用它。 做您想做的事情的最简单方法是构建张量的Python列表,并在循环结束时将它们在一起: *除对象外,使用etc.方法。但是,可能返回不支持此方法的对象。

  • 问题内容: 我在python中编写一个简单的排序程序,遇到此错误。我想交换列表元素,但返回错误。我在下面附上错误和相关程序。 码: 问题答案: 计算“ 1,2,3”的结果为。正如您所发现的,元组是不可变的。处理前转换为列表。

  • 问题内容: 当我运行该函数时,它会引发以下错误,这是为什么呢? 问题答案: 显然,您正在传递给函数。可能是用python2.x编写的(返回列表时)。使用python3.x时,返回一个行为更像a而不是a的对象。因此,无法对其进行索引。 解决方案是将(或简单地)传递给。

  • 问题内容: 我有这个查询: 我收到以下错误: some_id是一个整数,但我想选择具有some_id = 1的指标(或任何我决定放入变量的#)。 问题答案: 这会将参数转换为可索引的列表。假设您的方法像我想的那样工作,这应该工作。 发生错误是因为该方法中的某个地方,它可能试图遍历该输入或直接对其进行索引。可能是这样的: 通过使其成为列表(或可迭代的),您就可以像这样将其索引到第一个元素中。 您还可

  • 对于身份验证,我们使用文档中提到的以下作用域https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth 离线访问https://outlook.office.com/IMAP.Ac

  • 我正在学习Django和Rest框架,我有一个小项目要练习,但我在试图访问http://localhost:8000/admin:typeerror时出错:对象'module'不可订阅。 以下是我创建的Python文件: 文件“/home/jesus/.local/lib/python3.8/site-packages/django/core/handlers/base.py”,第115行,在_g