小编典典

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

python

我正在查看一些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

阅读 225

收藏
2020-12-20

共1个答案

小编典典

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

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

allocations = list(range(len(people)))
2020-12-20