Что такое набор в Python и как его создать

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

Но как вы можете создать набор и использовать его в Python? Мы объясним это в этом посте.

Особенности наборов Python

Помимо того, что не принимаются дубликаты, литерал набора имеет другие характеристики, отличающие его от других типов данных. Вот некоторые из его функций:

  • Он неизменяемый: это означает, что вы не можете изменять значения набора после его создания.
  • Литерал набора возвращает динамическое расположение каждый раз, когда вы его создаете. По сути, предметы в наборе неупорядочены.
  • Поскольку он представляет неупорядоченные элементы, в отличие от литералов списков и словарей, вы не можете получить значения набора по их индексам.

Как создать и использовать набор Python

Теперь, когда вы знаете основные функции набора Python. Давайте посмотрим, как вы можете использовать его в своей программе.

Вы используете фигурные скобки для создания набора в Python. Итак, набор представляет собой список элементов в фигурных скобках, разделенных запятыми:

  mySet = {  1, 2, «MUO», «Google»} 
print (mySet)
Вывод: {1, 2, «MUO», «Google»}

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

  myList = [1, 2, «MUO», «Google»] 
mySet = set (myList)
print (mySet)
Вывод: {1, 2, "MUO", "Google"}

Конечно, вы можете проверить тип данных mySet :

  myList = [1, 2, «MUO», «Google»  ] 
mySet = set (myList)
print (type (mySet))
Вывод:

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

Приведенный ниже код удаляет дубликаты в списке и представляет результат в виде набора Python:

  myList = [1, 2, 2 "  MUO "," MUO "," Google "," Google "] 
mySet = set (myList)
print (mySet)
Вывод: {1, 2, 'MUO' , 'Google'}

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

  mySet = {1, 2, 2, "MUO", "MUO", "  Google "," Google "} 
print (len (mySet))
Вывод: 4

Чтобы увидеть, как лучше использовать В случае набора давайте удалим дубликаты в следующем массиве. Это похоже на запрос уникальных ключей в массиве.

Для этого преобразуйте словарь в набор:

  myDiction = {
"Mango": 2, "Orange ": 2," морковь ": 2," MUO ":" технология ",
" MUO ":" Интернет "," Google ":" поиск "," Google ":" двигатель "
}
uniqueSet = set (myDiction)
print ("Это уникальные ключи: {}". format (uniqueSet))
Вывод: это уникальные ключи: { Google, Mango, MUO, Orange, carrot}

Приведенное выше преобразование автоматически удаляет повторяющиеся элементы из массива.

Вы можете изменить приведенный выше код с помощью цикла for, чтобы сделать его более понятным:

  для уникальных пользователей в uniqueSet: 
print ( uniques)

Вы также можете объединить два набора с помощью метода union () :

  setA = {1, 3, 5} 
setB = {1, 4, 6}
newSet = setA.union (setB)
print (newSet )
Вывод: {1, 3, 4, 5, 6}

Однако приведенный выше код объединяет два набора и удаляет повторяющиеся значения.

В качестве альтернативы вы можете использовать функцию pipe | для объединения наборов в Python:

  setA = {  1, 3, 5} 
setB = {1, 4, 6}
newSet = setA | setB
print (newSet)
Вывод: {1, 3 , 4, 5, 6}

Вы также можете найти разницу между двумя наборами в Python:

  setA = {1, 3, 5} 
setB = {2, 4, 5,}
print (setA.difference (setB))
Вывод: {1, 3 }

Вы можете найти симметричную разницу между наборами A и B. Этот метод возвращает элементы в любом наборе, но исключает их пересечения. Посмотрим, как это работает:

  setA = {1, 3, 5} 
setB = {2, 4, 5,}
print (setA ^ setB)
Вывод: {1, 2, 3, 4}

В качестве альтернативы вы можете использовать Метод simric_difference () :

  setA = {1, 3, 5} 
setB = {2, 4, 5,}
печать (setA. symric_difference (setB))
Вывод: {1, 2, 3, 4}

Давайте также посмотрим, как вы можете найти пересечение множеств ниже:

  setA = {1, 3, 5} 
setB = {1, 4, 6}
setC = {1, 5, 4}
newSet = setA.intersection (setB, setC)
print (newSet)
Вывод: {1}

Хотя вы можете добавлять в список в Python, вы не можете сделать то же самое для набора Python. Однако вы можете добавить элемент в конец набора с помощью функции add .

Но функция Python add принимает один аргумент, поэтому вы можете добавить в набор только кортеж. Это возвращает вложенный набор:

  setA = {1, 3, 5} setC = {1, 3} 
newSet = 1, 6
setC.add (newSet)
print (setC)
Вывод: {1, (1, 6), 3}

Набор Python использует метод isdisjoint () , чтобы проверить, не пересекаются ли два набора. Затем он возвращает логическое значение:

  setA = {1, 3, 5} 
setB = {1, 4, 6}
findDisjoint = setA.isdisjoint (setB)
print ("Это {}, что setA не пересекается с B" .format (findDisjoint))
Вывод: Ложно, что setA не пересекается с B

Чтобы проверить, является ли набор подмножеством другого, замените isdisjoint () на issubset () :

  findSubset = setA.issubset (setB) 

Вы можете удалить элемент из набора:

  setA = {1, 3, 5} 
setA. remove (5)
print (setA)
Вывод: {1, 3}

clear () очищает элементы в наборе и возвращает пустой набор:

  setA = {1, 3, 5} 
setA.clear ()
print (setA)
Вывод: set ()

Вы можете удалить произвольный элемент из набора и вернуть его значение с помощью метода set.pop () :

  setA = {1, 3, 5} 
print (setA.pop ())

Вы также можете обновить набор Python с помощью метода update ():

  setA = {1, 'b'} 
setB = {2, 4 , 5,}
print (setA.update (setB))
print (setA)
Вывод: {1, 2, 4, 5, 'b'}

Поиграйте с наборами Python

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

Помимо набора, другие типы данных или массивы Python имеют множество применений и различных приложений. Попробуйте поиграть с ними, чтобы лучше их повесить.

Оцените статью
oilgasindustry.ru
Добавить комментарий