Как обычно, если вы хотите пройти прямо вперед для кода, вот оно: >>> https://github.com/hugoestradas/python_basics.
1) Подсчет уникальных слов.
Почти каждое современное программное обеспечение Word Processor имеет подсчет инструмента GO получить общее количество слов в документе. Я возьму эту концепцию немного дальше, чтобы практиковать оба сломать текстовые и счетные предметы.
Для этого упражнения я напишу функцию Python, чтобы подсчитать количество уникальных слов и как часто происходит каждый.
Мой вклад будет путь текстового файла, а выход или результат будет общее количество слов, топ-10 наиболее частых слов и, наконец, количество вхождений на топ-10:
На этот раз я импортирую два модуля Python: «Re» для регулярных выражений и «коллекции» для подсчета. Моя функция начинается с открытия файла, с заданным «Путь» переменной, которая хранит местоположение файла, а затем используя регулярное выражение, которое я нахожу все слова в его тексте. Шаблон поиска ищет любую последовательность одной или нескольких букв, цифр, дефисов и/или апострофов.
Затем я преобразую список слов, которые он находит во все прописные буквы, а затем распечатает длину этого списка, что указывает на общее количество слов, которые были найдены.
В строке 10 я создаю новый объект «Counter» и используйте A для цикла, чтобы перейти через весь список слов и увеличивать записи списка в словаре счетчика.
В последнем блоке кода я использую метод «MOST_COMMON» счетчика для получения списка 10 наиболее распространенных слов, а также их значения счетчика для отображения:
2) Объединение файлов CSV
Файлы, разделенные запятыми (CSV) – это формат файла, который хранит табличные данные в простом тексте.
Я собираюсь написать функцию Python, чтобы объединить несколько файлов CSV в одну.
Я собираюсь получить в качестве ввода списка файлов в переменной «Путь».
Функция должна быть достаточно надежной, чтобы объединить файлы, которые заголовки даже не совпадают. Поля могут быть в разном порядке, или файл может иметь дополнительные поля, которые другой нет. Это будет обрабатывать все эти случаи, не теряя никаких полей или данных:
Первый блок кода создает список имен полей, я запускаю с создания пустого списка, затем используйте цикл A для открытия всех файлов в списке входных файлов CSV для объединения. Я использовал «Dictreader» CSV модуля «Dictreader» на линии восьми, чтобы извлечь все имена поля из каждого файла, а затем в строке девять я добавляю их в список полевых знаний, если они еще не там от предыдущего входного файла.
Вторая часть функции, обрабатывает запись записей в выходной файл, основанный на этих именах поля. Я использовал менеджер контекста, чтобы открыть выходной файл для записи в строке 12, а затем создал новый объект «DictWriter» из модуля CSV, проходящей в списке полей имен, которые я создал. Каждая запись, которую я добавил, используя этот метод «DICTWRITER», включает все поле из этого списка. В строке 14 я пишу первую строку заголовка в выходной файл, а затем используйте цикл для итерации, чтобы повторить все входные файлы CSV. Я открываю каждый раз и создаю новый «Dictreader» из него, затем я использую цикл для петли, чтобы перебраться через каждую запись в этом входном файле и записывать его в выходной файл. Если эта строка, которую я только что читал, отсутствует определенные поля, «DictWriter» оставит их пустыми или пустыми в выходе.
Это файлы CSV, которые я буду сравнивать с моей функцией:
И это последний объединенный файл CSV:
3) Сохранить словарь.
Словари Pythons очень популярны среди ученых данных, инженеров данных и других профессионалов данных. Это потому, что их потрясающие для хранения и извлечения информации. Единственная проблема заключается в том, что эти данные хранятся в памяти.
Что, если вам нужно использовать этот словарь позже?
В этом упражнении я напишу функцию Python, которая хранит словарь в файл.
Мои два входа – это словарь для сохранения и пути для выходного файла.
Я начну, импортируя модуль «Sicle», если вы не знакомы с этой библиотекой, я оставлю официальную документацию здесь:
https://docs.python.org/3/library/pickle.html
И вот код:
Для выполнения этой программы мне нужно создать объект тестового словаря с ключами, после сохранения словаря в файл, я могу просто распечатать содержимое из этого файла и показать вам содержимое остается там:
4) Создайте архив ZIP
Хорошо, прямо здесь мой код:
Как вы можете видеть, я импортировал модуль «ОС» для поиска каталогов и манипулировать пультами файлов и модулем «zipFile», чтобы на самом деле создать мой ZIP-файл.
Моя функция начинается, открывая файл «Вывод_zip» с помощью контекстно-менеджера. На следующей строке я использую функцию «OS.Walk» для изучения и поиска в каталоге.
Как вы можете видеть, что мой для цикла разделяется как в виде Linux-подобной структуре каталогов «root», «Dirs» и, наконец, «файлы».
Мне нужно поддерживать относительный путь к файлам для файлов в архиве вывода, но если пользователь вызывает функцию «zip_all» с абсолютным путем, корневой путь, который я получаю из функции «Прогулка», также будет абсолютной. Вот почему на линии 7 я использую функцию «OS.Relpath».
5) Найти все элементы списка
Метод индекса Python находит индекс первого элемента в списке; Но что, если есть несколько экземпляров этого предмета?
В этом я пишу функцию Python, чтобы найти индексы для всех элементов в списке, которые равны данному значению.
Входы являются список поиска и значение для поиска.
Выходной вывод должен быть список индексов, каждый из которых представлен списком номеров.
Приятно иметь в виду, что списки Python также могут содержать другие списки. Таким образом, эта функция должна иметь возможность проездных многомерных списков, чтобы найти все показатели данного значения.
Результат
Оригинал: “https://dev.to/hugoestradas/another-5-cool-python-exercises-31a5”