создать функцию ha sh с нуля в python, используя список - PullRequest
0 голосов
/ 10 июля 2020

Привет, я новичок в python, и было бы очень полезно, если бы кто-нибудь помог мне написать класс для ha sh в python для выполнения некоторых функций.

Я получил этот код из https://coderbook.com/@marcus / how-to-create-a-ha sh -table-from-scratch-in-python / все же некоторые функции iter () отсутствуют и нуждаются в помощи

1 Ответ

0 голосов
/ 10 июля 2020

Я бы спросил себя:

  • Как выглядит список ha sh с большим количеством значений в нем?
  • Как должен выглядеть результат?

Список ha sh может быть списком списков, реализованных в вашей ссылке. Теперь метод __iter__(self) должен выдавать одно значение за другим. Возврат может быть списком, содержащим два значения.

Итак, это проблема обхода. Чтобы начать с некоторого кода, который вы можете реализовать в python:

my_list = [[['key4', 4]], None, [['key1', 1], ['key2', 2]], None, 
          [['key0', 0]], None, None, [['key3', 3]]]

def traverse(my_list=None):
    if isinstance(my_list, (list, tuple)):
        for value in my_list:
            for subvalue in traverse(value):
                yield subvalue
    else:
        yield my_list

print(list(traverse(my_list)))

Но это не решает вашу проблему: вам может потребоваться добавить еще два условия для правильного условия завершения:

  • проверка длины списка в первую очередь и
  • проверка, является ли значение в my_list списком и является ли первый элемент этого значения также списком (для просмотра вниз по дереву)
...