Мне было довольно трудно понять, как выполнить одно из моих заданий, потому что я все еще не освоился с этими структурами данных. Но пройдя этот урок, он помог мне лучше понять, как я могу их использовать. Ниже приводится краткое изложение моих знаний.

Llist, Set, Tuple и Dictionary — одни из самых распространенных и базовых структур данных в Python. Структуры данных – это контейнеры, которые по-разному организуют и группируют типы данных.

Изменчивость и порядок

Изменчивость касается того, можем ли мы изменить объект после его создания. Если объект можно изменить, он называется изменяемым. Однако, если объект нельзя изменить, создав совершенно новый объект, этот объект считается неизменяемым.

Порядок заключается в том, можно ли использовать позицию (индекс) элемента в объекте для доступа к элементу.

Списки

Списки могут содержать любое сочетание типов данных, которые вы видели до сих пор. Вы можете создать список с квадратными скобками, как показано ниже. Списки бывают изменяемыми и упорядоченными.

list_of_random_things = [1, 3.4, 'a string', True]

Кортежи

Кортеж — это тип данных для неизменяемых упорядоченных последовательностей элементов. Они часто используются для хранения связанных фрагментов информации. Кортежи похожи на списки тем, что они хранят упорядоченный набор объектов, к которым можно получить доступ по их индексам. Однако, в отличие от списков, кортежи неизменяемы — вы не можете добавлять и удалять элементы из кортежей или сортировать их на месте.

location_a = (13.4125, 103.866667)
location_b = 13.4125, 103.866667

Скобки необязательны при определении кортежей, и программисты часто опускают их, если скобки не поясняют код. location_a и location_b совпадают.

Наборы

Набор — это тип данных для изменяемых неупорядоченных коллекций уникальных элементов. Одним из применений набора является быстрое удаление дубликатов из списка.

numbers = [1, 2, 6, 3, 1, 1, 6]
unique_nums = set(numbers)
print(unique_nums)
#Output would be:
{1, 2, 3, 6}

Словари

Словарь — это изменяемый тип данных, в котором хранятся сопоставления уникальных ключей со значениями. Вот словарь, в котором хранятся элементы и их атомные номера.

elements = {"hydrogen": 1, "helium": 2, "carbon": 6}

Словари могут иметь ключи любого неизменяемого типа, такие как целые числа или кортежи, а не только строки. Даже не обязательно, чтобы все ключи были одного типа! Мы можем искать значения или вставлять новые значения в словарь, используя квадратные скобки, заключающие ключ.

  • *Вы можете использовать фигурные скобки, чтобы определить такой набор: {1, 2, 3}. Однако, если вы оставите фигурные скобки пустыми, например: {} Вместо этого Python создаст пустой словарь. Итак, чтобы создать пустой набор, используйте set().
  • * *Словарь сам по себе является изменяемым, но каждый из его отдельных ключей должен быть неизменным. Вы можете узнать, почему здесь.

Как я использовал эти уроки для решения задачи:

Напишите функцию, которая принимает строку и возвращает кортеж, содержащий новую строку, состоящую из всех и только гласных из исходной строки и количество дубликатов в исходной строке. Учитывается только первый экземпляр гласной.

Например:

countVowels('dahdah') # вернет ('a', 3)

countVowels('пить воду') # вернет ('iae', 1)

Описание кода выше:

  1. Любая строка или инструкция, начинающаяся с символа (#), является комментарием и просто объясняет код под ней.
  2. Единственная разница между изображениями 1 и 2 заключается в том, что изображение 1 — предлагает пользователю ввести любое слово в (строка 6), а изображение 2 — (строка 16) передает значение к функции в (строка 2) т. е. 'dahdah' назначается параметру word. В остальном остальные строки одинаковы.
  3. Начиная с изображения 2. Строка 3. Создает список гласных букв, которые мы будем использовать для создания одного из элементов кортежа (my_string).
  4. строка 6 — [x вместо x в слове, если x в гласных]извлекает все и только те буквы в word, которые также входят в состав гласных. Но вывод для этого может содержать повторяющиеся буквы в зависимости от значения для wordи помните, учитывается только первый экземпляр гласной. Используя 'dahdah', вывод будет ['a','a']. Поэтому мы преобразуем список в набор с помощью метода set(), который удаляет все повторяющиеся элементы, чтобы получить {‘a’}.
  5. строка 7 — вывод строки 6 принесет набор элементов, разделенных запятыми (,), если элементов больше одного. Помните, что элемент кортежа (my_string) должен быть строкой, содержащей гласные буквы. поэтому мы используем “”.join(vowel_word), строковый метод, который принимает список строк в vowel_word в качестве аргумента и возвращает строку, состоящую из соединенных элементов списка. строкой-разделителем (что находится между « »). В этом случае он делает элемент одной строкой, потому что между кавычками ничего нет.
  6. строка 10 — мы подсчитываем количество дубликатов в исходной строке. Во-первых, мы должны найти, какие буквы повторяются или встречаются более одного раза, используя [x вместо x в слове, если word.count(x)›1], и результат будет ['d ','a', 'h', 'd', 'a', 'h'].После получения повторяющихся букв мы должны удалить их дубликаты с помощью set(), чтобы они отображались один раз следующим образом: {'d', 'a', 'h'}.
  7. строка 13 — создает кортеж my_tuple с двумя элементами; my_string – новая строка, состоящая из всех и только гласных букв исходной строки, и len(duplicates) –  количество дубликатов в исходной строке. Метод len() подсчитывает количество элементов в списке дубликатов({‘d’, ‘a’, ‘h’}).
  8. строка 14 — выводит результат (значение my_tuple) на экран.

Если вы нашли это полезным, не стесняйтесь поделиться или прокомментировать.