Будет выведено {3: 'pineapple', 4: 'pear'}. enumerate выдаёт исходные индексы, а фильтрация не перенумеровывает выбранные элементы.
Фильтрация элементов списка в словарь по префиксу
Будет выведено {3: 'pineapple', 4: 'pear'}. enumerate выдаёт исходные индексы, а фильтрация не перенумеровывает выбранные элементы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой результат будет выведен на экран. Убедитесь, что вы понимаете, как работает генератор словаря с условием и методом startswith().
fruit_list = ['apple', 'orange', 'lemon', 'pineapple', 'pear']
result_dict = {
i: f
for i, f in enumerate(fruit_list)
if f.startswith('p')
}
print(result_dict)
Ответ
Будет выведено {3: 'pineapple', 4: 'pear'}. enumerate выдаёт исходные индексы, а фильтрация не перенумеровывает выбранные элементы.
enumerate последовательно формирует пары (0, 'apple'), (1, 'orange') и далее. Условие f.startswith('p') истинно только для последних двух фруктов.
{3: 'pineapple', 4: 'pear'}
Метод проверяет начало строки, а не наличие буквы в произвольной позиции. Поэтому apple, несмотря на содержащиеся в нём p, не подходит. Если нужны ключи 0 и 1 для уже отобранных значений, сначала отфильтруйте последовательность, а затем примените enumerate. В текущем коде сохраняется связь с позициями исходного списка.