Объект Int не является подписным. функция редуктора - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь узнать о функции MapReduce. В настоящее время я получаю сообщение об ошибке "объект 'int' не подписан". Я следую учебному пособию на другом веб-сайте: https://towardsdatascience.com/a-beginners-introduction-into-mapreduce-2c912bb5e6ac

def find_longest_string(list_of_strings):
  longest_string = None
  longest_string_len = 0

  for s in list_of_strings:
    if len(s) > longest_string_len:
      longest_string_len = len(s)
      longest_string = s
  return longest_string

list_of_strings = ['abc','python','dima']
large_list = list_of_strings * 100000000

mapper = len

def chunkify(seq, num):
  avg = len(seq) / float(num)
  out = []
  last = 0.0

  while last < len(seq):
    out.append(seq[int(last):int(last + avg)])
    last += avg

  return out

def reducer(p, c):
  if p[1] > c[1]:
    return p
  return c

from multiprocessing import Pool

pool = Pool(8)

data_chunks = chunkify(large_list, 8)

mapped = pool.map(mapper, data_chunks)

reduced = reduce(reducer, mapped)

print(reduced)

В результате выдается самая длинная строка, которая подается в котором ['python', 6]

Я не знаю, что вызвало ошибку. Пожалуйста, помогите.

...