Получение карты () для возврата списка в Python 3.x

Что-то вроде этого?

function delete_folder($folder) {
    $glob = glob($folder);
    foreach ($glob as $g) {
        if (!is_dir($g)) {
            unlink($g);
        } else {
            delete_folder("$g/*");
            rmdir($g);
        }
    }
}
458
задан Simeon Leyzerzon 13 October 2018 в 20:37
поделиться

4 ответа

Сделайте следующее:

list(map(chr,[66,53,0,94]))

В Python 3+ многие процессы, которые повторяют итерации, сами возвращают итераторы. В большинстве случаев это приводит к экономии памяти и ускоряет работу.

Если все, что вам нужно сделать, это в конечном итоге перебрать этот список, нет необходимости даже преобразовывать его в список, потому что вы все равно можете перебирать объект map следующим образом:

# Prints "ABCD"
for ch in map(chr,[65,66,67,68]):
    print(ch)
717
ответ дан 22 November 2019 в 22:47
поделиться

Я не знаком с Python 3.1, но будет ли это работать?

[chr(x) for x in [66, 53, 0, 94]]
11
ответ дан 3 November 2019 в 22:27
поделиться

В Python 3, функциональности карты, и т.д. изменился фильтр. Это возврат привычки список вместо этого, это возвращает итератор, по которому мы можем выполнить итерации. Таким образом в Вашем случае итератор является объектом карты. Следовательно просто сделайте

lst = [value for value in map(chr, [66, 53, 0, 94])]

, Это должно хорошо работать

-1
ответ дан 22 November 2019 в 22:47
поделиться

Почему вы этого не делаете:

[chr(x) for x in [66,53,0,94]]

Это называется составлением списка. Вы можете найти много информации в Google, но здесь ссылка на документацию Python (2.6) по составлению списков . Однако вас может заинтересовать документация Python 3 .

94
ответ дан 22 November 2019 в 22:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: