Jeśli chcesz dowiedzieć się, jak efektywnie tworzyć puste listy w Pythonie, to ten artykuł jest dla Ciebie.
Dowiesz się:
- Jak utworzyć pustą listę przy użyciu nawiasów kwadratowych
.
- Jak utworzyć pustą listę przy użyciu
list()
. - Jakie są ich przypadki użycia.
- Jak bardzo są wydajne (jeden jest szybszy od drugiego!). Do ich porównania użyjemy modułu
timeit
.
Zacznijmy! ✨
🔹 Używanie nawiasów kwadratowych
Pustą listę można utworzyć za pomocą pustej pary nawiasów kwadratowych, jak poniżej:
💡 Wskazówka: Pustą listę przypisujemy do zmiennej, aby wykorzystać ją później w naszym programie.
Na przykład:
num =
Pusta lista będzie miała długość 0
, jak widać tutaj:
>>> num = >>> len(num)0
Puste listy są wartościami falsy, co oznacza, że oceniają do False
w kontekście boolean:
>>> num = >>> bool(num)False
Add Elements to an Empty List
Możesz dodawać elementy do pustej listy za pomocą metod append()
i insert()
:
-
append()
dodaje element na koniec listy. -
insert()
dodaje element w wybranym przez użytkownika indeksie listy.
Ponieważ listy mogą być wartościami prawdziwymi lub fałszywymi, w zależności od tego, czy są puste, czy nie, kiedy są oceniane, możesz używać ich w warunkach, takich jak ten:
if num:print("This list is not empty")else:print("This list is empty")
Wynikiem tego kodu jest:
This list is empty
Ponieważ lista była pusta, więc ocenia się na False.
Ogólnie:
- Jeżeli lista nie jest pusta, oblicza
True
, więc klauzula if jest wykonywana. - Jeżeli lista jest pusta, oblicza
False
, więc klauzula else jest wykonywana.
Przykład:
W poniższym przykładzie tworzymy pustą listę i przypisujemy ją do zmiennej num
. Następnie, używając pętli for, dodajemy do początkowo pustej listy ciąg elementów (liczb całkowitych):
>>> num = >>> for i in range(3, 15, 2):num.append(i)
Sprawdzamy wartość zmiennej, aby zobaczyć, czy elementy zostały dodane i czy lista nie jest już pusta:
>>> num
💡 Wskazówka: Powszechnie używamy append()
, aby dodać pierwszy element do pustej listy, ale możesz również dodać ten element wywołując metodę insert()
z indeksem 0
:
>>> num = >>> num.insert(0, 1.5) # add the float 1.5 at index 0>>> num
🔸 Using the list() Constructor
Alternatywnie można utworzyć pustą listę za pomocą konstruktora typu list()
, który tworzy nowy obiekt listy.
Zgodnie z dokumentacją Pythona:
Jeśli nie podano żadnego argumentu, konstruktor tworzy nową pustą listę,
💡 Wskazówka: Powoduje to utworzenie nowego obiektu listy w pamięci, a ponieważ nie przekazaliśmy żadnych argumentów do list()
, zostanie utworzona pusta lista.
Na przykład:
num = list()
Ta pusta lista będzie miała długość 0
, jak widać tutaj:
>>> num = list()>>> len(num)0
I jest to wartość falsy, gdy jest pusta (ocenia do False
w kontekście boolean):
>>> num = list()>>> bool(num)False
Przykład:
To jest w pełni funkcjonalna lista, więc możemy dodawać do niej elementy:
>>> num = list()>>> for i in range(3, 15, 2):num.append(i)
A wynikiem będzie niepusta lista, jak widać właśnie tutaj:
>>> num
🔹 Use Cases
- Zwykle używamy
list()
do tworzenia list z istniejących iterabiliów, takich jak ciągi, słowniki czy tuple. - Powszechnie można zobaczyć nawiasy kwadratowe
używane do tworzenia pustych list w Pythonie, ponieważ ta składnia jest bardziej zwięzła i szybsza.
🔸 Wydajność
Poczekaj! Właśnie powiedziałem Ci, że jest szybszy niż
list()
…
Ale o ile szybszy?
Sprawdźmy ich wydajność czasową za pomocą modułu timeit.
Aby użyć tego modułu w swoim programie w Pythonie, musisz go zaimportować:
>>> import timeit
Specjalnie, użyjemy funkcji timeit z tego modułu, którą możesz wywołać za pomocą tej składni:
💡 Wskazówka: Kod jest powtarzany kilka razy, aby zmniejszyć różnice czasowe, które mogą wynikać z czynników zewnętrznych, takich jak inne procesy, które mogą być uruchomione w danym momencie. Dzięki temu wyniki są bardziej wiarygodne dla celów porównawczych.
🚦 Na miejsca… gotowi… gotowi! Oto kod i dane wyjściowe:
Po pierwsze, importujemy moduł.
>>> import timeit
Następnie zaczynamy testować każdą składnię.
Testowanie :
>>> timeit.timeit('', number=10**4)0.0008467000000109692
Testowanie list():
>>> timeit.timeit('list()', number=10**4)0.002867799999989984
💡 Wskazówka: Zauważ, że kod, który chcesz odmierzać czas musi być otoczony pojedynczymi cudzysłowami ''
lub podwójnymi ""
. Czas zwracany przez funkcję timeit
jest wyrażony w sekundach.
Porównaj te wyniki:
-
0.0008467000000109692
-
list()
0.002867799999989984
Można zauważyć, że jest znacznie szybszy niż
list()
. W tym teście wystąpiła różnica około 0.002
sekund:
>>> 0.002867799999989984 - 0.00084670000001096920.0020210999999790147
Jestem pewien, że musisz o to teraz zapytać: Dlaczego list()
jest mniej wydajny niż , jeśli robią dokładnie to samo?
Cóż… list()
jest wolniejszy, ponieważ wymaga wyszukania nazwy funkcji, wywołania jej, a następnie utworzenia obiektu listy w pamięci. W przeciwieństwie do tego, jest jak „skrót”, który nie wymaga tak wielu pośrednich kroków, aby utworzyć listę w pamięci.
Ta różnica czasu nie wpłynie zbytnio na wydajność Twojego programu, ale dobrze jest wiedzieć, który z nich jest bardziej wydajny i jak działają za kulisami.
🔹 W podsumowaniu
Pustą listę można utworzyć za pomocą pustej pary nawiasów kwadratowych lub konstruktora typu
list()
, wbudowanej funkcji, która tworzy pustą listę, gdy nie są przekazywane żadne argumenty.
Nawiasy kwadratowe są powszechnie używane w Pythonie do tworzenia pustych list, ponieważ jest to szybsze i bardziej zwięzłe.
Naprawdę mam nadzieję, że podobał Ci się mój artykuł i uznałeś go za pomocny. Teraz możesz tworzyć puste listy w swoich projektach w Pythonie. Sprawdź moje kursy online. Śledź mnie na Twitterze. ⭐️
Jeśli chcesz zagłębić się bardziej w tematykę list, możesz przeczytać:
- Python List Append – How to Add an Element to an Array, Explained with Examples
- The Python Sort List Array Method – Ascending and Descending Explained with Examples
- Python List Append VS Python List Extend – The Difference Explained with Array Method Examples