Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类型错误:';范围';对象不支持项分配_Python_Python 3.x - Fatal编程技术网

Python 类型错误:';范围';对象不支持项分配

Python 类型错误:';范围';对象不支持项分配,python,python-3.x,Python,Python 3.x,我在看一些Python2.x代码,并试图将其翻译成Py3.x,但我仍停留在这一部分。有人能澄清什么是错的吗 import random emails = { "x": "[REDACTED]@hotmail.com", "x2": "[REDACTED]@hotmail.com", "x3": "[REDACTED]@hotmail.com" } people = emails.keys() #generate a number for everyone alloc

我在看一些
Python2.x
代码,并试图将其翻译成
Py3.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

在Python3中,
range
返回一个惰性序列对象-它不返回列表。无法重新排列范围对象中的元素,因此无法对其进行洗牌

在洗牌之前将其转换为列表

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

在Python3中,
range
返回一个惰性序列对象-它不返回列表。无法重新排列范围对象中的元素,因此无法对其进行洗牌

在洗牌之前将其转换为列表

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

如果您可以使用numpy库,您可以用
np.arange
替换
range

import numpy as np
allocations = np.arange(len(people))

如果您可以使用numpy库,您可以用
np.arange
替换
range

import numpy as np
allocations = np.arange(len(people))

你知道python3的xrange等价物吗?python3的
range
与python2的
xrange
相同。旧的
range
不再存在。它返回一个序列类型的range对象。您知道python3的xrange等价物吗?python3的
range
与python2的
xrange
相同。旧的
range
不再存在。它返回一个序列类型的range对象导入
numpy
对于这一点,当它可以通过使用
list()
以本机方式完成时,就太过了。对于这一点,当它可以通过使用
list()
以本机方式完成时,导入
numpy
就太过了。