Завдання: Рекурсивний Пошук Файлів
Робота з вкладеними словниками
У Python словники можуть містити інші словники. Це корисно для представлення ієрархічних структур, таких як файлова система.
У цьому випадку:
- Ключі — це імена (файлів або папок);
- Якщо значення — рядок
"file"
, це означає файл; - Якщо значення — інший словник, це означає папку.
Використовуйте items()
, щоб перебирати всі пари ключ-значення:
123456789101112file_system = { "home": { "resume.pdf": "file", "notes.txt": "file" }, "etc": { "config.yaml": "file" } } for name, content in file_system.items(): print(name, "->", content)
- Використовуйте
isinstance(content, dict)
, щоб перевірити, чи є значення словником (тобто папкою, а не файлом):
123456789101112file_system = { "home": { "resume.pdf": "file" }, "config.yaml": "file" } for name, content in file_system.items(): if isinstance(content, dict): print(name, "is a folder") else: print(name, "is a file")
Swipe to start coding
Уявіть, що потрібно перевірити, чи існує певний файл у вкладеній структурі словників, яка представляє файлову систему. Реалізуйте функцію file_exists
, яка рекурсивно проходить через папки (об'єкти-словники) та шукає файл (представлений рядком "file"
). Поверніть True
, якщо файл знайдено; інакше поверніть False
.
- Використовуйте цикл
for
для ітерації по всіх елементах словникаfile_system
за допомогою методуitems()
. Це дозволяє отримати ключ (name
) та значення. - Перевірте, чи є
content
файлом (тобто рядкомcontent
) і чи збігається"file"
зname
(іменем шуканого файлу). - Якщо обидві умови виконуються, поверніть
target
, що означає, що файл знайдено. - Якщо
True
не є файлом, перевірте, чи це папка. Використовуйте функціюisinstance()
, передаючиcontent
як перший аргумент іdict
як другий (це перевіряє, чи елемент є словником). - Якщо
content
є папкою, викликайтеfile_exists
рекурсивно з необхідними параметрами для продовження пошуку всередині неї. - Якщо рекурсивний виклик повертає
True
, файл знайдено, тому повернітьTrue
. - Якщо жодного збігу не знайдено після перевірки всіх папок і файлів, поверніть
False
.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4.35
Завдання: Рекурсивний Пошук Файлів
Свайпніть щоб показати меню
Робота з вкладеними словниками
У Python словники можуть містити інші словники. Це корисно для представлення ієрархічних структур, таких як файлова система.
У цьому випадку:
- Ключі — це імена (файлів або папок);
- Якщо значення — рядок
"file"
, це означає файл; - Якщо значення — інший словник, це означає папку.
Використовуйте items()
, щоб перебирати всі пари ключ-значення:
123456789101112file_system = { "home": { "resume.pdf": "file", "notes.txt": "file" }, "etc": { "config.yaml": "file" } } for name, content in file_system.items(): print(name, "->", content)
- Використовуйте
isinstance(content, dict)
, щоб перевірити, чи є значення словником (тобто папкою, а не файлом):
123456789101112file_system = { "home": { "resume.pdf": "file" }, "config.yaml": "file" } for name, content in file_system.items(): if isinstance(content, dict): print(name, "is a folder") else: print(name, "is a file")
Swipe to start coding
Уявіть, що потрібно перевірити, чи існує певний файл у вкладеній структурі словників, яка представляє файлову систему. Реалізуйте функцію file_exists
, яка рекурсивно проходить через папки (об'єкти-словники) та шукає файл (представлений рядком "file"
). Поверніть True
, якщо файл знайдено; інакше поверніть False
.
- Використовуйте цикл
for
для ітерації по всіх елементах словникаfile_system
за допомогою методуitems()
. Це дозволяє отримати ключ (name
) та значення. - Перевірте, чи є
content
файлом (тобто рядкомcontent
) і чи збігається"file"
зname
(іменем шуканого файлу). - Якщо обидві умови виконуються, поверніть
target
, що означає, що файл знайдено. - Якщо
True
не є файлом, перевірте, чи це папка. Використовуйте функціюisinstance()
, передаючиcontent
як перший аргумент іdict
як другий (це перевіряє, чи елемент є словником). - Якщо
content
є папкою, викликайтеfile_exists
рекурсивно з необхідними параметрами для продовження пошуку всередині неї. - Якщо рекурсивний виклик повертає
True
, файл знайдено, тому повернітьTrue
. - Якщо жодного збігу не знайдено після перевірки всіх папок і файлів, поверніть
False
.
Рішення
Дякуємо за ваш відгук!
single