Рубрики
Без рубрики

Структуры данных Python (списки, кортежи, словари, наборы)

Структуры данных в Python для начинающих. Теги с питоном, структурами данных, типами данных, информатикой.

В этом сообщении мы собираемся изучить краткий обзор некоторых структур данных, специфичных для Python3.

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

Список Python

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

some_list = [1, 2, 3, 4, 5]
some_list = ['a','b','c','d']
some_list = [7, 'hi', None, False, True, ['another', 'list']]

Чтобы получить доступ к элементу в списке, мы используем обозначения кронштейнов и передаем индекс. Списки в Python Используйте индекс на основе нуля:

some_list = ['a', 1, False]
print(some_list[2]) #False

Кроме того, существует ряд встроенных методов, которые вы можете использовать. Вот еще несколько:

append () – добавляет значение к концу списка:

some_list = [11,25,3]
some_list.append(10)
print(some_list) #[11,25,3,10]

clear () – удаляет все значения в списке:

some_list = [1,2,3]
some_list.clear()
print(some_list) #[]

copy () – делает мелкую копию списка:

some_list = [2,3,4]
another_list = some_list.copy()
print(another_list) #[2, 3, 4]

count () – Подсчет, сколько раз появляется элемент в списке:

some_list = [1,2,3,4,5,5,5,5]
some_list.count(1) #1
print(some_list.count(5)) #4

extend () – добавляет все элементы списка в какой -то другой список:

some_list = [1,2,3]
some_list.extend([5,6,7])
print(some_list) #[1,2,3,5,6,7] 

index () – Возвращает индекс элемента. Если элемент не найден, index возвращает ValueError:

some_list = [4,8,6,4]
print(some_list.index(8)) #1
print(some_list.index(4)) #0 - it only finds the index of the first matching element
print(some_list.index(12)) #ValueError

INSERT () – вставьте элемент в список в данном индексе:

some_list = [4,6,8]
some_list.insert(2,'awesome') #inserts 'awesome' at index 2
print(some_list) #[4,6,'awesome',8]

pop () – удаляет последний элемент из списка и возвращает удаленный элемент:

some_list = [3,4]
print(some_list.pop()) #4
print(some_list.pop()) #IndexError

pop () бросает ошибку, если вы позвоните в пустой список.

удалить () – удалять первое вхождение значения:

some_list = [1,2,3,1]
some_list.remove(1)
print(some_list) #[2,3,1]

Обратный () – обращает порядок всех элементов списка:

some_list = [1,2,3,4]
some_list.reverse()
print(some_list) #[4,3,2,1]

sort () – сортирует все элементы списка в порядке возрастания:

some_list = [1,4,3,2]
some_list.sort()
print(some_list) #[1,2,3,4]

Питон кортеж

Подобно списку, кортеж в Python также является коллекцией предметов. Различия заключаются в том, что кортежи неизбежны, что означает, что мы не можем изменить элементы после назначения, и использовать скобки, тогда как в списках используются квадратные скобки. Из -за неизменности операции на кортежах быстрее, чем в списках.

some_tuple = ('a', 'b', 'c', 'd')

Чтобы написать кортеж, содержащий единственное значение, вы должны включить запятую, даже если есть только одно значение:

single_tuple = ('a',)

Ниже приведены некоторые общие методы, используемые на кортежах:

count () – возвращает количество раз, когда значение появляется в кортеже:

some_tuple = (1,2,3,3,3)
print(some_tuple.count(1)) #1
print(some_tuple.count(3)) #3

index () – Возвращает индекс данного элемента в кортеже:

some_tuple = (1,2,3,3,3)
print(some_tuple.index(1)) #0
print(some_tuple.index(5)) #ValueError

Словарь Python

Словари в Python – это пары ключевых значений. Они определяются с использованием вьющихся скобок, разделяют пары значений ключей с запятой и размещают толстую кишку между ключом и значением:

weekdays = {
    1: 'Monday',
    2: 'Tuesday',
    3: 'Wednesday',
    4: 'Thursday',
    5: 'Friday',
    6: 'Saturday',
    7: 'Sunday'
}

-Кейс в словаре должен быть уникальным (нет двух одинаковых клавиш) -Кейс неизменные -Кейс, а значения могут быть из любого типа данных – Список значений в словаре

Ниже приведены общие методы на словари:

clear () – очищает все ключи и значения в словаре:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}
car.clear()
print(car) #{}

copy () – делает копию словаря:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.copy()
print(x) #{'brand': 'Maserati', 'model': 'Quattroporte'}

FromKeys () – создает пары значений ключей из значений отделения запятой:

keys = ('a', 'e', 'i', 'o', 'u')
value = 'vowel'

vowels = dict.fromkeys(keys, value) 
#{'a': 'vowel', 'u': 'vowel', 'o': 'vowel', 'e': 'vowel', 'i': 'vowel'}

get () – получает ключ в объект и возвращает ни одного вместо KeeError, если ключа не существует:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.get('model')
print(x) #Quattroporte

items () – Возвращает список кортежей с каждой парой ключей:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.items()
print(x) #[('brand', 'Maserati'), ('model', 'Quattroporte')]

keys () – возвращает объект dict_keys, содержащий все ключи в объекте:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.keys()
print(x) #(['brand', 'model'])

setDefault () – возвращает значение указанного ключа:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.setdefault('model', 'Ghibli')
print(x) #Quattroporte 

Update () – Обновите ключи и значения в словаре с другим набором значения ключа:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}

x = car.update({'color': 'white'})
print(x) #{'brand': 'Maserati', 'model': 'Quattroporte', 'color': 'white'}

values () – возвращает список всех значений в словаре:

car = {
  'brand': 'Maserati',
  'model': 'Quattroporte'
}
x = car.values()
print(list(x)) #['Maserati', 'Quattroporte']

Набор Python

Набор – это неупорядоченная коллекция объектов в Python. В дополнение к тому, чтобы быть итерационным и изменчивым, наборы не имеют дублирования значений. Они могут быть полезны, если вам нужно отслеживать коллекцию элементов, но не заботится о заказе.

Вот несколько набор методов:

Добавить () – добавляет элемент в набор. Если элемент уже находится в наборе, набор не меняется:

s = {1,2,3}
s.add(4)
print(s) #{1, 2, 3, 4}
s.add(4)
print(s) #{1,2,3,4}

clear () – удаляет все элементы набора:

s = {1,2,3}
s.clear()
print(s) #set()

copy () – создает копию набора:

s = {1,2,3}
another_s = s.copy()
print(another_s) #{1, 2, 3}

Различия () – возвращает новый набор со всеми элементами, которые находятся в первом наборе, но не в наборе, передаваемом разнице:

set1 = {1,2,3}
set2 = {2,3,4}
x = set1.difference(set2) 
print(x) #{1}
y = set2.difference(set1) 
print(y) #{4}

recsection () – возвращает новый набор, содержащий все элементы, которые находятся в обоих наборах:

set1 = {1,2,3}
set2 = {2,3,4}
x = set1.intersection(set2) 
print(x) #{2,3}

Союз – возвращает союз из двух наборов:

set1 = {1,2,3}
set2 = {2,3,4}
x = set1.union(set2) 
print(x) #{1,2,3,4}

Хорошее понимание структур данных очень важно для разработчиков. Я надеюсь, что эта статья поможет вам понять структуры данных для ваших проектов Python.

Оригинал: “https://dev.to/highflyer910/python-data-structures-lists-tuples-dictionaries-sets-3epc”