#python-3.x #jupyter-notebook
Вопрос:
я запустил приведенный ниже код в записной книжке jupyter, и он выдал следующее сообщение об ошибке: диапазон имени «xrange» не определен. я не знаю, что я делаю не так, и у меня установлен [python-3.9]. Кто-нибудь может помочь, пожалуйста?
from pyspark import SparkContext
import random
n = 100
heads = (sc.parallelize(xrange(n))
.map(lambda _: random.random())
.filter(lambda r: r < 0.5)
.count())
tails = n - heads
ratio = 1. *heads / n
print('heads =',heads)
print('tails =',tails)
print('ratio =',ratio)
Комментарии:
1. Похоже, вы установили пакет Python 2 в своей среде Python 3. Избавиться от него и установить версию Python 3?
Ответ №1:
xrange
это функция Python 2. Имя функции изменилось на range
в Python 3.
range
Для получения дополнительной информации ознакомьтесь с документацией функции.
На Python 2 range
возвращен полный список:
range(5)
[0, 1, 2, 3, 4]
И xrange
вернул повторяющийся объект.
В Python 3 range
возвращает повторяющийся объект:
x = range(5)
print(x) # range(0, 5)
print(next(x)) # 0
print(next(x)) # 1