Как да конвертирате списък в набор в Python

Бизнесмен, използващ лаптоп в офиса

Можете да конвертирате списък в набор в Python.

Кредит на изображението: Poike/iStock/GettyImages

И списъците, и наборите в Python съдържат групи от елементи, но има важни разлики между двете. По-специално, наборите са полезни за извършване на широк спектър от операции, като обединения и пресечки, докато списъците имат по-малко математически операции, но са полезни за търсене на конкретни елементи – особено с дубликати – и организиране данни. Поради много причини може да се наложи да конвертирате списък в набор в Python и има проста функция, която можете да използвате, за да направите това.

Обяснение на списъци и набори на Python

Най-важната разлика между списък и набор в Python е, че списъкът може да съдържа дублиращи се елементи, докато наборът съдържа само уникални елементи. Например, ако имате списък с резултати от тестове, дефинирани като „резултати=[14, 20, 13, 20, 15]“, списъкът ви казва всяка стойност, но ако я преобразувате в набор, той премахва дубликата и оставя {14, 20, 13, 15}.

Видео на деня

Друга разлика е, че квадратните скоби се използват за списъци, докато къдравите скоби се използват за набори. Нещата се усложняват малко от факта, че речник на Python също използва къдрави скоби, но там всеки елемент се състои от самата стойност и "ключ", разделен с двоеточие.

Важно е да запомните, че можете да използвате низове, цели числа, плаващи числа или други обекти като част от набор или списък и те също могат да бъдат смесени в същия набор или списък. Така че, точно както можете да имате набор от числа в Python, можете също да конструирате набор от низове на Python.

Преобразуване на списък в набор

Процесът за преобразуване на списък в набор в Python е лесен. Първо, вие дефинирате списъка по начин, който има смисъл за информацията, съдържаща се в него. Например, кажете, че искате да дефинирате списък с имена, можете да напишете names=['Лий', 'Майк', 'Джейми', 'Майк', 'Сара'] отбелязване на квадратни скоби, кавички около низовете (имена) и запетаи, разделящи всеки запис.

За да конвертирате този списък в набор, използвате командата комплект(), където поставяте името на списъка, който искате да преобразувате между скоби. Така че в този случай можете да пишете набор (имена) за да конвертирате имената в списъка в набор и можете да му присвоите променлива като "uniquenames" и да покажете резултата, като използвате печат (уникални имена), което е функционално еквивалентно на печат (набор (имена)) но по-подредено. Потвърждавате, че това е направено правилно, като отбелязвате, че резултатът използва къдрави скоби и „Майк“ се включва само веднъж.

Целият код изглежда така:

names=['Лий', 'Майк', 'Джейми', 'Майк', 'Сара']

уникални имена=набор (имена)

print('Уникални имена: ', уникални имена)

В този случай „Уникални имена:“ е добавено към изхода за целите на представянето.

Python: Задайте преобразуване на списък

Можете също да стартирате същото преобразуване в обратна посока и процесът е основно същият, освен че използвате списък() команда на набор, а не обратното. Това означава, че имате нужда от набор, с който да започнете, който можете да дефинирате лесно, като изберете променлива като "big_set" и след това добавите съдържанието, разделено със запетаи и в къдрави скоби. Можеше да пишеш big_set={1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 17} за да дефинирате набор от цели числа или всякакви други стойности.

За да конвертирате това в списък, дефинирате променлива (да речем, "big_list") и използвате списък() команда, така че напишете нещо подобно голям_списък=списък (голям_набор) и тогава печат (голям_списък) за показване на резултата. Така че пълният код е:

big_set={1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 17}

голям_списък=списък (голям_набор)

печат (голям_списък)

Този случай не дава име на списъка, така че връща само списъка. Имайте предвид, че ако преобразувате списък в набор и след това обратно, губите всички повтарящи се стойности при първото преобразуване и те не се връщат.