Завдання: Рекурсивний Пошук Файлів
Робота з вкладеними словниками
У 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
як другий (що перевіряє, чи елемент є словником). - Якщо 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
як другий (що перевіряє, чи елемент є словником). - Якщо content є папкою, викличте
file_exists
рекурсивно з необхідними параметрами, щоб продовжити пошук всередині неї. - Якщо рекурсивний виклик повертає
True
, файл знайдено, тому повернітьTrue
. - Якщо жодного збігу не знайдено після перевірки всіх папок і файлів, поверніть
False
.
Рішення
Дякуємо за ваш відгук!
Awesome!
Completion rate improved to 4.35single