{"id":1493,"date":"2026-04-06T13:39:39","date_gmt":"2026-04-06T11:39:39","guid":{"rendered":"https:\/\/trzykody.pl\/?p=1493"},"modified":"2026-04-25T13:44:05","modified_gmt":"2026-04-25T11:44:05","slug":"len-zwraca-liczbe-elementow-w-obiekcie","status":"publish","type":"post","link":"https:\/\/trzykody.pl\/index.php\/2026\/04\/06\/len-zwraca-liczbe-elementow-w-obiekcie\/","title":{"rendered":"Len \u2013 zwraca liczb\u0119 element\u00f3w w obiekcie"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Praca z kolekcjami danych w Pythonie bardzo szybko prowadzi do jednego podstawowego pytania: ile element\u00f3w faktycznie znajduje si\u0119 w danym obiekcie. To nie jest drobiazg, bo od tej informacji zale\u017c\u0105 p\u0119tle, walidacja danych wej\u015bciowych, kontrola b\u0142\u0119d\u00f3w i wydajno\u015b\u0107 ca\u0142ego programu. Programista sprawdza d\u0142ugo\u015b\u0107 list, liczb\u0119 znak\u00f3w w napisie, ilo\u015b\u0107 kluczy w s\u0142owniku albo rozmiar zbioru przed dalszym przetwarzaniem. W praktyce jest to jedna z najcz\u0119\u015bciej u\u017cywanych operacji, a Len \u2013 zwraca liczb\u0119 element\u00f3w w obiekcie.<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Spis Tre\u015bci<\/h2><nav><ol><li><a href=\"#len-zwraca-liczbe-elementow-w-obiekcie-i-stanowi-podstawe-pracy-z-listami-napisami-oraz-slownikami\">Len \u2013 zwraca liczb\u0119 element\u00f3w w obiekcie i stanowi podstaw\u0119 pracy z listami, napisami oraz s\u0142ownikami<\/a><ol><li><a href=\"#podstawowa-skladnia\">Podstawowa sk\u0142adnia<\/a><\/li><li><a href=\"#najprostsze-przyklady\">Najprostsze przyk\u0142ady<\/a><\/li><\/ol><\/li><li><a href=\"#roznica-miedzy-liczba-elementow-a-rozmiarem-logicznym-danych-przy-uzyciu-len-zwraca-liczbe-elementow-w-obiekcie\">R\u00f3\u017cnica mi\u0119dzy liczb\u0105 element\u00f3w a rozmiarem logicznym danych przy u\u017cyciu Len \u2013 zwraca liczb\u0119 element\u00f3w w obiekcie<\/a><ol><li><a href=\"#przyklad-logicznej-dlugosci\">Przyk\u0142ad logicznej d\u0142ugo\u015bci<\/a><\/li><li><a href=\"#dlugosc-a-petle\">D\u0142ugo\u015b\u0107 a p\u0119tle<\/a><\/li><\/ol><\/li><li><a href=\"#len-zwraca-liczbe-elementow-w-obiekcie-takze-w-klasach-wlasnych-dzieki-metodzie-specjalnej-len\">Len \u2013 zwraca liczb\u0119 element\u00f3w w obiekcie tak\u017ce w klasach w\u0142asnych dzi\u0119ki metodzie specjalnej __len__<\/a><ol><li><a href=\"#przyklad-wlasnej-klasy\">Przyk\u0142ad w\u0142asnej klasy<\/a><\/li><li><a href=\"#wymagania-dla-len\">Wymagania dla __len__()<\/a><\/li><\/ol><\/li><li><a href=\"#zachowanie-funkcji-dla-pustych-struktur-danych-i-typowe-bledy-poczatkujacych\">Zachowanie funkcji dla pustych struktur danych i typowe b\u0142\u0119dy pocz\u0105tkuj\u0105cych<\/a><ol><li><a href=\"#przyklady-pustych-obiektow\">Przyk\u0142ady pustych obiekt\u00f3w<\/a><\/li><li><a href=\"#czesty-blad-uzycie-len-na-liczbie\">Cz\u0119sty b\u0142\u0105d: u\u017cycie len() na liczbie<\/a><\/li><li><a href=\"#czesty-blad-none\">Cz\u0119sty b\u0142\u0105d: None<\/a><\/li><\/ol><\/li><li><a href=\"#porownanie-dzialania-w-pythonie-php-i-c-oraz-roznice-praktyczne\">Por\u00f3wnanie dzia\u0142ania w Pythonie, PHP i C++ oraz r\u00f3\u017cnice praktyczne<\/a><ol><li><a href=\"#porownanie\">Por\u00f3wnanie<\/a><\/li><li><a href=\"#przyklad-php\">Przyk\u0142ad PHP<\/a><\/li><\/ol><\/li><li><a href=\"#wzory-logiczne-uzywane-razem-z-dlugoscia-danych-podczas-walidacji-wejscia\">Wzory logiczne u\u017cywane razem z d\u0142ugo\u015bci\u0105 danych podczas walidacji wej\u015bcia<\/a><ol><li><a href=\"#typowe-warunki\">Typowe warunki<\/a><\/li><li><a href=\"#przyklad-walidacji-hasla\">Przyk\u0142ad walidacji has\u0142a<\/a><\/li><\/ol><\/li><li><a href=\"#uwagi-praktyczne-ktore-oszczedzaja-czas-i-ograniczaja-bledy\">Uwagi praktyczne, kt\u00f3re oszcz\u0119dzaj\u0105 czas i ograniczaj\u0105 b\u0142\u0119dy<\/a><\/li><li><a href=\"#faq\">FAQ<\/a><ol><li><a href=\"#czy-len-dziala-na-liczbach-calkowitych\">Czy len() dzia\u0142a na liczbach ca\u0142kowitych?<\/a><\/li><li><a href=\"#czy-spacja-w-napisie-jest-liczona\">Czy spacja w napisie jest liczona?<\/a><\/li><li><a href=\"#czy-dla-slownika-liczone-sa-wartosci\">Czy dla s\u0142ownika liczone s\u0105 warto\u015bci?<\/a><\/li><li><a href=\"#czy-len-jest-szybkie\">Czy len() jest szybkie?<\/a><\/li><li><a href=\"#czy-mozna-uzywac-len-we-wlasnych-klasach\">Czy mo\u017cna u\u017cywa\u0107 len() we w\u0142asnych klasach?<\/a><\/li><li><a href=\"#czy-len-i-size-to-to-samo\">Czy len() i size() to to samo?<\/a><\/li><\/ol><\/li><\/ol><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"len-zwraca-liczbe-elementow-w-obiekcie-i-stanowi-podstawe-pracy-z-listami-napisami-oraz-slownikami\">Len \u2013 zwraca liczb\u0119 element\u00f3w w obiekcie i stanowi podstaw\u0119 pracy z listami, napisami oraz s\u0142ownikami<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Funkcja <code>len()<\/code> w Pythonie jest funkcj\u0105 wbudowan\u0105, czyli nie wymaga importowania \u017cadnego modu\u0142u. Jej zadanie jest bardzo konkretne: zwr\u00f3ci\u0107 liczb\u0119 element\u00f3w znajduj\u0105cych si\u0119 w obiekcie iterowalnym lub obiekcie posiadaj\u0105cym d\u0142ugo\u015b\u0107.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Najcz\u0119\u015bciej dotyczy to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>list<\/li>\n\n\n\n<li>krotek<\/li>\n\n\n\n<li>napis\u00f3w (<code>str<\/code>)<\/li>\n\n\n\n<li>s\u0142ownik\u00f3w (<code>dict<\/code>)<\/li>\n\n\n\n<li>zbior\u00f3w (<code>set<\/code>)<\/li>\n\n\n\n<li>zakres\u00f3w (<code>range<\/code>)<\/li>\n\n\n\n<li>obiekt\u00f3w w\u0142asnych z metod\u0105 <code>__len__()<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Warto zwr\u00f3ci\u0107 uwag\u0119 na s\u0142owo \u201eelement\u201d. Dla listy elementem b\u0119dzie pojedyncza warto\u015b\u0107, dla napisu pojedynczy znak, a dla s\u0142ownika pojedynczy klucz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To cz\u0119sty b\u0142\u0105d pocz\u0105tkuj\u0105cych: zak\u0142adanie, \u017ce dla s\u0142ownika liczone s\u0105 pary klucz-warto\u015b\u0107 jako dwa osobne elementy. Python liczy klucze.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"podstawowa-skladnia\">Podstawowa sk\u0142adnia<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Element<\/th><th>Przyk\u0142ad<\/th><\/tr><\/thead><tbody><tr><td>Sk\u0142adnia<\/td><td><code>len(obiekt)<\/code><\/td><\/tr><tr><td>Zwracany typ<\/td><td><code>int<\/code><\/td><\/tr><tr><td>Mo\u017cliwy wyj\u0105tek<\/td><td><code>TypeError<\/code>, je\u015bli obiekt nie ma d\u0142ugo\u015bci<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"najprostsze-przyklady\">Najprostsze przyk\u0142ady<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Typ danych<\/th><th>Kod<\/th><\/tr><\/thead><tbody><tr><td>Lista<\/td><td><code>dane = [10, 20, 30, 40]<\/code><br><code>print(len(dane))<\/code><\/td><\/tr><tr><td>Napis<\/td><td><code>tekst = \"Python\"<\/code><br><code>print(len(tekst))<\/code><\/td><\/tr><tr><td>S\u0142ownik<\/td><td><code>uzytkownik = {\"imie\": \"Anna\", \"wiek\": 28}<\/code><br><code>print(len(uzytkownik))<\/code><\/td><\/tr><tr><td>Zbi\u00f3r<\/td><td><code>wartosci = {1, 2, 3, 4, 5}<\/code><br><code>print(len(wartosci))<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wyniki b\u0119d\u0105 odpowiednio:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>4<\/li>\n\n\n\n<li>6<\/li>\n\n\n\n<li>2<\/li>\n\n\n\n<li>5<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Dla napisu <code>\"Python\"<\/code> d\u0142ugo\u015b\u0107 wynosi 6, poniewa\u017c liczone s\u0105 znaki: <code>P<\/code>, <code>y<\/code>, <code>t<\/code>, <code>h<\/code>, <code>o<\/code>, <code>n<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dla s\u0142ownika wynik to 2, bo istniej\u0105 dwa klucze: <code>imi<\/code>\u0119 oraz <code>wiek<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"roznica-miedzy-liczba-elementow-a-rozmiarem-logicznym-danych-przy-uzyciu-len-zwraca-liczbe-elementow-w-obiekcie\">R\u00f3\u017cnica mi\u0119dzy liczb\u0105 element\u00f3w a rozmiarem logicznym danych przy u\u017cyciu Len \u2013 zwraca liczb\u0119 element\u00f3w w obiekcie<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sama d\u0142ugo\u015b\u0107 nie zawsze oznacza realny \u201erozmiar\u201d danych w sensie pami\u0119ciowym. <code>len()<\/code> nie m\u00f3wi, ile bajt\u00f3w zajmuje obiekt, tylko ile logicznych element\u00f3w zawiera.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To rozr\u00f3\u017cnienie jest wa\u017cne.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lista zawieraj\u0105ca 1000 bardzo du\u017cych napis\u00f3w i lista 1000 liczb ca\u0142kowitych mog\u0105 mie\u0107 ten sam wynik <code>len()<\/code>, ale zupe\u0142nie inne zu\u017cycie pami\u0119ci RAM.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"przyklad-logicznej-dlugosci\">Przyk\u0142ad logicznej d\u0142ugo\u015bci<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Kod<\/th><th>Wynik<\/th><\/tr><\/thead><tbody><tr><td><code>a = [\"x\"] * 1000<\/code><br><code>print(len(a))<\/code><\/td><td><code>1000<\/code><\/td><\/tr><tr><td><code>b = [\"bardzo_dlugi_napis\" * 100] * 1000<\/code><br><code>print(len(b))<\/code><\/td><td><code>1000<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Obie kolekcje maj\u0105 d\u0142ugo\u015b\u0107 1000, ale koszt pami\u0119ciowy jest inny.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dlatego <code>len()<\/code> s\u0142u\u017cy do logiki programu, nie do analizy pami\u0119ci.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"dlugosc-a-petle\">D\u0142ugo\u015b\u0107 a p\u0119tle<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bardzo cz\u0119sto d\u0142ugo\u015b\u0107 s\u0142u\u017cy do kontrolowania p\u0119tli.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>J\u0119zyk<\/th><th>Kod<\/th><\/tr><\/thead><tbody><tr><td>Python<\/td><td><code>liczby = [5, 8, 2, 9]<\/code><br><code>for i in range(len(liczby)):<\/code><br>&nbsp;&nbsp;&nbsp;&nbsp;<code>print(i, liczby[i])<\/code><\/td><\/tr><tr><td>C<\/td><td><code>int tablica[4] = {5, 8, 2, 9};<\/code><br><code>int rozmiar = 4;<\/code><br><code>for(int i = 0; i &lt; rozmiar; i++)<\/code><br><code>printf(\"%d\\n\", tablica[i]);<\/code><\/td><\/tr><tr><td>C++<\/td><td><code>vector&lt;int&gt; v = {5, 8, 2, 9};<\/code><br><code>for(int i = 0; i &lt; v.size(); i++)<\/code><br><code>cout &lt;&lt; v[i] &lt;&lt; endl;<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">W Pythonie cz\u0119sto lepsze jest bezpo\u015brednie iterowanie po elementach, ale <code>range(len())<\/code> nadal jest potrzebne wtedy, gdy wymagany jest indeks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"len-zwraca-liczbe-elementow-w-obiekcie-takze-w-klasach-wlasnych-dzieki-metodzie-specjalnej-len\">Len \u2013 zwraca liczb\u0119 element\u00f3w w obiekcie tak\u017ce w klasach w\u0142asnych dzi\u0119ki metodzie specjalnej <code>__len__<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Python pozwala definiowa\u0107 w\u0142asne obiekty tak, aby wsp\u00f3\u0142pracowa\u0142y z <code>len()<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Warunek jest jeden: klasa musi implementowa\u0107 metod\u0119 specjaln\u0105 <code>__len__()<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To szczeg\u00f3lnie przydatne przy pisaniu struktur danych, kontener\u00f3w lub w\u0142asnych modeli biznesowych.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"przyklad-wlasnej-klasy\">Przyk\u0142ad w\u0142asnej klasy<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>J\u0119zyk<\/th><th>Kod<\/th><\/tr><\/thead><tbody><tr><td>Python<\/td><td><code>class Magazyn:<\/code><br>&nbsp;&nbsp;&nbsp;&nbsp;<code>def __init__(self, produkty):<\/code><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>self.produkty = produkty<\/code><br><br>&nbsp;&nbsp;&nbsp;&nbsp;<code>def __len__(self):<\/code><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>return len(self.produkty)<\/code><br><br><code>m = Magazyn([\"monitor\", \"klawiatura\", \"mysz\"])<\/code><br><code>print(len(m))<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wynik:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>3<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dzi\u0119ki temu w\u0142asny obiekt zachowuje si\u0119 jak standardowa kolekcja.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To wa\u017cne w wi\u0119kszych projektach, bo poprawia czytelno\u015b\u0107 kodu. Zamiast pisa\u0107:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>m.liczba_produktow()<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">mo\u017cna u\u017cy\u0107:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>len(m)<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">i od razu wiadomo, o co chodzi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"wymagania-dla-len\">Wymagania dla <code>__len__()<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Metoda powinna:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>zwraca\u0107 liczb\u0119 ca\u0142kowit\u0105<\/li>\n\n\n\n<li>zwraca\u0107 warto\u015b\u0107 wi\u0119ksz\u0105 lub r\u00f3wn\u0105 0<\/li>\n\n\n\n<li>nie wykonywa\u0107 ci\u0119\u017ckich oblicze\u0144<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Je\u015bli <code>__len__()<\/code> b\u0119dzie wolne, ca\u0142y kod zacznie dzia\u0142a\u0107 gorzej, bo <code>len()<\/code> wywo\u0142ywane jest bardzo cz\u0119sto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"zachowanie-funkcji-dla-pustych-struktur-danych-i-typowe-bledy-poczatkujacych\">Zachowanie funkcji dla pustych struktur danych i typowe b\u0142\u0119dy pocz\u0105tkuj\u0105cych<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Puste struktury s\u0105 bardzo cz\u0119ste: pusty formularz, brak wynik\u00f3w z bazy, pusty plik CSV, brak odpowiedzi z API.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>len()<\/code> pozwala szybko to sprawdzi\u0107.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"przyklady-pustych-obiektow\">Przyk\u0142ady pustych obiekt\u00f3w<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Kod<\/th><th>Wynik<\/th><\/tr><\/thead><tbody><tr><td><code>print(len([]))<\/code><\/td><td><code>0<\/code><\/td><\/tr><tr><td><code>print(len(\"\"))<\/code><\/td><td><code>0<\/code><\/td><\/tr><tr><td><code>print(len({}))<\/code><\/td><td><code>0<\/code><\/td><\/tr><tr><td><code>print(len(set()))<\/code><\/td><td><code>0<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dzi\u0119ki temu mo\u017cna bezpiecznie kontrolowa\u0107 przep\u0142yw programu.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Kod<\/th><th>Zastosowanie<\/th><\/tr><\/thead><tbody><tr><td><code>if len(lista) == 0:<\/code><br>&nbsp;&nbsp;&nbsp;&nbsp;<code>print(\"Brak danych\")<\/code><\/td><td>jawne sprawdzenie pustej listy<\/td><\/tr><tr><td><code>if not lista:<\/code><br>&nbsp;&nbsp;&nbsp;&nbsp;<code>print(\"Brak danych\")<\/code><\/td><td>bardziej idiomatyczne w Pythonie<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Obie wersje dzia\u0142aj\u0105 poprawnie, ale druga jest cz\u0119\u015bciej spotykana w praktyce.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czesty-blad-uzycie-len-na-liczbie\">Cz\u0119sty b\u0142\u0105d: u\u017cycie <code>len()<\/code> na liczbie<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Kod<\/th><th>Efekt<\/th><\/tr><\/thead><tbody><tr><td><code>x = 100<\/code><br><code>print(len(x))<\/code><\/td><td><code>TypeError<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Liczba ca\u0142kowita nie ma d\u0142ugo\u015bci.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To samo dotyczy typu <code>float<\/code>, <code>bool<\/code> i wielu innych obiekt\u00f3w nieb\u0119d\u0105cych kontenerami.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czesty-blad-none\">Cz\u0119sty b\u0142\u0105d: <code>None<\/code><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Kod<\/th><th>Efekt<\/th><\/tr><\/thead><tbody><tr><td><code>dane = None<\/code><br><code>print(len(dane))<\/code><\/td><td><code>TypeError<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To bardzo cz\u0119sty problem przy pracy z bazami danych i API.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zamiast zak\u0142ada\u0107, \u017ce dane istniej\u0105, lepiej sprawdzi\u0107:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Kod<\/th><th>Bezpieczna wersja<\/th><\/tr><\/thead><tbody><tr><td><code>if dane is not None:<\/code><br>&nbsp;&nbsp;&nbsp;&nbsp;<code>print(len(dane))<\/code><\/td><td>unikanie b\u0142\u0119du<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"porownanie-dzialania-w-pythonie-php-i-c-oraz-roznice-praktyczne\">Por\u00f3wnanie dzia\u0142ania w Pythonie, PHP i C++ oraz r\u00f3\u017cnice praktyczne<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">R\u00f3\u017cne j\u0119zyki rozwi\u0105zuj\u0105 ten sam problem inaczej.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python u\u017cywa <code>len()<\/code> jako funkcji.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PHP najcz\u0119\u015bciej korzysta z <code>count()<\/code> dla tablic i <code>strlen()<\/code> dla napis\u00f3w.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C++ u\u017cywa metod takich jak <code>.size()<\/code> albo <code>.length()<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"porownanie\">Por\u00f3wnanie<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>J\u0119zyk<\/th><th>Lista \/ tablica<\/th><th>Napis<\/th><\/tr><\/thead><tbody><tr><td>Python<\/td><td><code>len(lista)<\/code><\/td><td><code>len(tekst)<\/code><\/td><\/tr><tr><td>PHP<\/td><td><code>count($tablica)<\/code><\/td><td><code>strlen($tekst)<\/code><\/td><\/tr><tr><td>C++<\/td><td><code>v.size()<\/code><\/td><td><code>s.length()<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"przyklad-php\">Przyk\u0142ad PHP<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>J\u0119zyk<\/th><th>Kod<\/th><\/tr><\/thead><tbody><tr><td>PHP<\/td><td><code>$tablica = [1, 2, 3, 4];<\/code><br><code>echo count($tablica);<\/code><br><br><code>$tekst = \"Python\";<\/code><br><code>echo strlen($tekst);<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">W Pythonie wygoda polega na tym, \u017ce jedna funkcja dzia\u0142a dla wielu typ\u00f3w.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To upraszcza nauk\u0119 i zmniejsza liczb\u0119 b\u0142\u0119d\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wzory-logiczne-uzywane-razem-z-dlugoscia-danych-podczas-walidacji-wejscia\">Wzory logiczne u\u017cywane razem z d\u0142ugo\u015bci\u0105 danych podczas walidacji wej\u015bcia<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">W praktyce <code>len()<\/code> bardzo cz\u0119sto wyst\u0119puje razem z warunkami.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nie chodzi o sam\u0105 liczb\u0119 element\u00f3w, ale o decyzj\u0119: czy dane s\u0105 poprawne.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"typowe-warunki\">Typowe warunki<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Zastosowanie<\/th><th>Wz\u00f3r logiczny<\/th><\/tr><\/thead><tbody><tr><td>pusta lista<\/td><td><code>len(lista) = 0<\/code><\/td><\/tr><tr><td>minimalna liczba znak\u00f3w has\u0142a<\/td><td><code>len(haslo) &gt;= 8<\/code><\/td><\/tr><tr><td>dok\u0142adna liczba element\u00f3w<\/td><td><code>len(dane) = 3<\/code><\/td><\/tr><tr><td>zakres poprawnej d\u0142ugo\u015bci<\/td><td><code>5 &lt;= len(tekst) &lt;= 20<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"przyklad-walidacji-hasla\">Przyk\u0142ad walidacji has\u0142a<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>J\u0119zyk<\/th><th>Kod<\/th><\/tr><\/thead><tbody><tr><td>Python<\/td><td><code>haslo = \"abc12345\"<\/code><br><br><code>if len(haslo) &gt;= 8:<\/code><br>&nbsp;&nbsp;&nbsp;&nbsp;<code>print(\"Has\u0142o poprawne\")<\/code><br><code>else:<\/code><br>&nbsp;&nbsp;&nbsp;&nbsp;<code>print(\"Has\u0142o za kr\u00f3tkie\")<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Tu realny problem jest prosty: zbyt kr\u00f3tkie has\u0142o oznacza wi\u0119ksze ryzyko utraty konta. To nie jest teoria akademicka, tylko codzienny problem bezpiecze\u0144stwa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"uwagi-praktyczne-ktore-oszczedzaja-czas-i-ograniczaja-bledy\">Uwagi praktyczne, kt\u00f3re oszcz\u0119dzaj\u0105 czas i ograniczaj\u0105 b\u0142\u0119dy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nie warto wywo\u0142ywa\u0107 <code>len()<\/code> wielokrotnie dla tego samego obiektu w jednej sekcji kodu, je\u015bli obiekt si\u0119 nie zmienia. Lepiej zapisa\u0107 wynik do zmiennej.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Kod mniej wygodny<\/th><th>Kod lepszy<\/th><\/tr><\/thead><tbody><tr><td><code>if len(lista) &gt; 0:<\/code><br>&nbsp;&nbsp;&nbsp;&nbsp;<code>print(len(lista))<\/code><\/td><td><code>rozmiar = len(lista)<\/code><br><code>if rozmiar &gt; 0:<\/code><br>&nbsp;&nbsp;&nbsp;&nbsp;<code>print(rozmiar)<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Przy bardzo du\u017cych systemach takie drobiazgi poprawiaj\u0105 czytelno\u015b\u0107.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Druga rzecz: nie nale\u017cy myli\u0107 d\u0142ugo\u015bci napisu z liczb\u0105 widocznych znak\u00f3w u\u017cytkownika. Polskie znaki, spacje, znaki ko\u0144ca linii albo Unicode mog\u0105 powodowa\u0107 r\u00f3\u017cnice interpretacyjne.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Trzecia sprawa: w przypadku NumPy czy Pandas <code>len()<\/code> dzia\u0142a, ale nie zawsze oznacza to, czego oczekuje programista. Dla DataFrame zwracana jest liczba wierszy, nie wszystkich kom\u00f3rek.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To cz\u0119sto prowadzi do b\u0142\u0119dnych raport\u00f3w i z\u0142ych analiz danych.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"faq\">FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czy-len-dziala-na-liczbach-calkowitych\">Czy <code>len()<\/code> dzia\u0142a na liczbach ca\u0142kowitych?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nie. Typ <code>int<\/code> nie posiada d\u0142ugo\u015bci logicznej, wi\u0119c Python zg\u0142osi <code>TypeError<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czy-spacja-w-napisie-jest-liczona\">Czy spacja w napisie jest liczona?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tak. Ka\u017cdy znak jest liczony, r\u00f3wnie\u017c spacja, tabulator i znak nowej linii.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czy-dla-slownika-liczone-sa-wartosci\">Czy dla s\u0142ownika liczone s\u0105 warto\u015bci?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nie. Liczone s\u0105 klucze.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czy-len-jest-szybkie\">Czy <code>len()<\/code> jest szybkie?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Dla standardowych struktur danych zazwyczaj tak, poniewa\u017c d\u0142ugo\u015b\u0107 jest przechowywana wewn\u0119trznie i nie trzeba liczy\u0107 element\u00f3w od pocz\u0105tku.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czy-mozna-uzywac-len-we-wlasnych-klasach\">Czy mo\u017cna u\u017cywa\u0107 <code>len()<\/code> we w\u0142asnych klasach?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tak, je\u015bli klasa implementuje metod\u0119 <code>__len__()<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"czy-len-i-size-to-to-samo\">Czy <code>len()<\/code> i <code>size()<\/code> to to samo?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Logicznie tak \u2014 oba mechanizmy zwracaj\u0105 liczb\u0119 element\u00f3w &#8211; ale zale\u017cy to od j\u0119zyka programowania. Python u\u017cywa <code>len()<\/code>, C++ zwykle <code>.size()<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Funkcja d\u0142ugo\u015bci wygl\u0105da niepozornie, ale w praktyce pojawia si\u0119 wsz\u0119dzie: przy walidacji formularzy, analizie plik\u00f3w, pracy z baz\u0105 danych, przetwarzaniu tekstu i sterowaniu p\u0119tlami. To jeden z tych element\u00f3w, kt\u00f3re wydaj\u0105 si\u0119 banalne dopiero do momentu, gdy b\u0142\u0119dna d\u0142ugo\u015b\u0107 danych zaczyna kosztowa\u0107 czas, pieni\u0105dze albo utracone informacje.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>\u0179r\u00f3d\u0142o Foto: Freepik<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Praca z kolekcjami danych w Pythonie bardzo szybko prowadzi do jednego podstawowego pytania: ile element\u00f3w faktycznie znajduje si\u0119 w danym obiekcie. To nie jest drobiazg, bo od tej informacji zale\u017c\u0105 p\u0119tle, walidacja danych wej\u015bciowych, kontrola b\u0142\u0119d\u00f3w i wydajno\u015b\u0107 ca\u0142ego programu. Programista sprawdza d\u0142ugo\u015b\u0107 list, liczb\u0119 znak\u00f3w w napisie, ilo\u015b\u0107 kluczy w s\u0142owniku albo rozmiar zbioru przed dalszym przetwarzaniem. W praktyce jest to jedna z najcz\u0119\u015bciej u\u017cywanych operacji, a Len \u2013 zwraca liczb\u0119 element\u00f3w w obiekcie. Len \u2013 zwraca liczb\u0119 element\u00f3w w obiekcie i stanowi podstaw\u0119 pracy z listami, napisami oraz s\u0142ownikami Funkcja len() w Pythonie jest funkcj\u0105 wbudowan\u0105, czyli nie wymaga importowania \u017cadnego modu\u0142u. Jej zadanie jest bardzo konkretne: zwr\u00f3ci\u0107 liczb\u0119 element\u00f3w znajduj\u0105cych si\u0119 w obiekcie iterowalnym lub obiekcie posiadaj\u0105cym d\u0142ugo\u015b\u0107. Najcz\u0119\u015bciej dotyczy to: Warto zwr\u00f3ci\u0107 uwag\u0119 na s\u0142owo \u201eelement\u201d. Dla listy elementem b\u0119dzie pojedyncza warto\u015b\u0107, dla napisu pojedynczy znak, a dla s\u0142ownika pojedynczy klucz. To cz\u0119sty b\u0142\u0105d pocz\u0105tkuj\u0105cych: zak\u0142adanie, \u017ce dla s\u0142ownika liczone s\u0105 pary klucz-warto\u015b\u0107 jako dwa osobne elementy. Python liczy klucze. Podstawowa sk\u0142adnia Element Przyk\u0142ad Sk\u0142adnia len(obiekt) Zwracany typ int Mo\u017cliwy wyj\u0105tek TypeError, je\u015bli obiekt nie ma d\u0142ugo\u015bci Najprostsze przyk\u0142ady Typ danych Kod Lista dane = [10, 20, 30, 40]print(len(dane)) Napis tekst = &#8222;Python&#8221;print(len(tekst)) S\u0142ownik uzytkownik = {&#8222;imie&#8221;: &#8222;Anna&#8221;, &#8222;wiek&#8221;: 28}print(len(uzytkownik)) Zbi\u00f3r wartosci = {1, 2, 3, 4, 5}print(len(wartosci)) Wyniki b\u0119d\u0105 odpowiednio: Dla napisu &#8222;Python&#8221; d\u0142ugo\u015b\u0107 wynosi 6, poniewa\u017c liczone s\u0105 znaki: P, y, t, h, o, n. Dla s\u0142ownika wynik to 2, bo istniej\u0105 dwa klucze: imi\u0119 oraz wiek. R\u00f3\u017cnica mi\u0119dzy liczb\u0105 element\u00f3w a rozmiarem logicznym danych przy u\u017cyciu Len \u2013 zwraca liczb\u0119 element\u00f3w w obiekcie Sama d\u0142ugo\u015b\u0107 nie zawsze oznacza realny \u201erozmiar\u201d danych w sensie pami\u0119ciowym. len() nie m\u00f3wi, ile bajt\u00f3w zajmuje obiekt, tylko ile logicznych element\u00f3w zawiera. To rozr\u00f3\u017cnienie jest wa\u017cne. Lista zawieraj\u0105ca 1000 bardzo du\u017cych napis\u00f3w i lista 1000 liczb ca\u0142kowitych mog\u0105 mie\u0107 ten sam wynik len(), ale zupe\u0142nie inne zu\u017cycie pami\u0119ci RAM. Przyk\u0142ad logicznej d\u0142ugo\u015bci Kod Wynik a = [&#8222;x&#8221;] * 1000print(len(a)) 1000 b = [&#8222;bardzo_dlugi_napis&#8221; * 100] * 1000print(len(b)) 1000 Obie kolekcje maj\u0105 d\u0142ugo\u015b\u0107 1000, ale koszt pami\u0119ciowy jest inny. Dlatego len() s\u0142u\u017cy do logiki programu, nie do analizy pami\u0119ci. D\u0142ugo\u015b\u0107 a p\u0119tle Bardzo cz\u0119sto d\u0142ugo\u015b\u0107 s\u0142u\u017cy do kontrolowania p\u0119tli. J\u0119zyk Kod Python liczby = [5, 8, 2, 9]for i in range(len(liczby)):&nbsp;&nbsp;&nbsp;&nbsp;print(i, liczby[i]) C int tablica[4] = {5, 8, 2, 9};int rozmiar = 4;for(int i = 0; i &lt; rozmiar; i++)printf(&#8222;%d\\n&#8221;, tablica[i]); C++ vector&lt;int&gt; v = {5, 8, 2, 9};for(int i = 0; i &lt; v.size(); i++)cout &lt;&lt; v[i] &lt;&lt; endl; W Pythonie cz\u0119sto lepsze jest bezpo\u015brednie iterowanie po elementach, ale range(len()) nadal jest potrzebne wtedy, gdy wymagany jest indeks. Len \u2013 zwraca liczb\u0119 element\u00f3w w obiekcie tak\u017ce w klasach w\u0142asnych dzi\u0119ki metodzie specjalnej __len__ Python pozwala definiowa\u0107 w\u0142asne obiekty tak, aby wsp\u00f3\u0142pracowa\u0142y z len(). Warunek jest jeden: klasa musi implementowa\u0107 metod\u0119 specjaln\u0105 __len__(). To szczeg\u00f3lnie przydatne przy pisaniu struktur danych, kontener\u00f3w lub w\u0142asnych modeli biznesowych. Przyk\u0142ad w\u0142asnej klasy J\u0119zyk Kod Python class Magazyn:&nbsp;&nbsp;&nbsp;&nbsp;def __init__(self, produkty):&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.produkty = produkty &nbsp;&nbsp;&nbsp;&nbsp;def __len__(self):&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return len(self.produkty) m = Magazyn([&#8222;monitor&#8221;, &#8222;klawiatura&#8221;, &#8222;mysz&#8221;])print(len(m)) Wynik: 3 Dzi\u0119ki temu w\u0142asny obiekt zachowuje si\u0119 jak standardowa kolekcja. To wa\u017cne w wi\u0119kszych projektach, bo poprawia czytelno\u015b\u0107 kodu. Zamiast pisa\u0107: m.liczba_produktow() mo\u017cna u\u017cy\u0107: len(m) i od razu wiadomo, o co chodzi. Wymagania dla __len__() Metoda powinna: Je\u015bli __len__() b\u0119dzie wolne, ca\u0142y kod zacznie dzia\u0142a\u0107 gorzej, bo len() wywo\u0142ywane jest bardzo cz\u0119sto. Zachowanie funkcji dla pustych struktur danych i typowe b\u0142\u0119dy pocz\u0105tkuj\u0105cych Puste struktury s\u0105 bardzo cz\u0119ste: pusty formularz, brak wynik\u00f3w z bazy, pusty plik CSV, brak odpowiedzi z API. len() pozwala szybko to sprawdzi\u0107. Przyk\u0142ady pustych obiekt\u00f3w Kod Wynik print(len([])) 0 print(len(&#8222;&#8221;)) 0 print(len({})) 0 print(len(set())) 0 Dzi\u0119ki temu mo\u017cna bezpiecznie kontrolowa\u0107 przep\u0142yw programu. Kod Zastosowanie if len(lista) == 0:&nbsp;&nbsp;&nbsp;&nbsp;print(&#8222;Brak danych&#8221;) jawne sprawdzenie pustej listy if not lista:&nbsp;&nbsp;&nbsp;&nbsp;print(&#8222;Brak danych&#8221;) bardziej idiomatyczne w Pythonie Obie wersje dzia\u0142aj\u0105 poprawnie, ale druga jest cz\u0119\u015bciej spotykana w praktyce. Cz\u0119sty b\u0142\u0105d: u\u017cycie len() na liczbie Kod Efekt x = 100print(len(x)) TypeError Liczba ca\u0142kowita nie ma d\u0142ugo\u015bci. To samo dotyczy typu float, bool i wielu innych obiekt\u00f3w nieb\u0119d\u0105cych kontenerami. Cz\u0119sty b\u0142\u0105d: None Kod Efekt dane = Noneprint(len(dane)) TypeError To bardzo cz\u0119sty problem przy pracy z bazami danych i API. Zamiast zak\u0142ada\u0107, \u017ce dane istniej\u0105, lepiej sprawdzi\u0107: Kod Bezpieczna wersja if dane is not None:&nbsp;&nbsp;&nbsp;&nbsp;print(len(dane)) unikanie b\u0142\u0119du Por\u00f3wnanie dzia\u0142ania w Pythonie, PHP i C++ oraz r\u00f3\u017cnice praktyczne R\u00f3\u017cne j\u0119zyki rozwi\u0105zuj\u0105 ten sam problem inaczej. Python u\u017cywa len() jako funkcji. PHP najcz\u0119\u015bciej korzysta z count() dla tablic i strlen() dla napis\u00f3w. C++ u\u017cywa metod takich jak .size() albo .length(). Por\u00f3wnanie J\u0119zyk Lista \/ tablica Napis Python len(lista) len(tekst) PHP count($tablica) strlen($tekst) C++ v.size() s.length() Przyk\u0142ad PHP J\u0119zyk Kod PHP $tablica = [1, 2, 3, 4];echo count($tablica); $tekst = &#8222;Python&#8221;;echo strlen($tekst); W Pythonie wygoda polega na tym, \u017ce jedna funkcja dzia\u0142a dla wielu typ\u00f3w. To upraszcza nauk\u0119 i zmniejsza liczb\u0119 b\u0142\u0119d\u00f3w. Wzory logiczne u\u017cywane razem z d\u0142ugo\u015bci\u0105 danych podczas walidacji wej\u015bcia W praktyce len() bardzo cz\u0119sto wyst\u0119puje razem z warunkami. Nie chodzi o sam\u0105 liczb\u0119 element\u00f3w, ale o decyzj\u0119: czy dane s\u0105 poprawne. Typowe warunki Zastosowanie Wz\u00f3r logiczny pusta lista len(lista) = 0 minimalna liczba znak\u00f3w has\u0142a len(haslo) &gt;= 8 dok\u0142adna liczba element\u00f3w len(dane) = 3 zakres poprawnej d\u0142ugo\u015bci 5 &lt;= len(tekst) &lt;= 20 Przyk\u0142ad walidacji has\u0142a J\u0119zyk Kod Python haslo = &#8222;abc12345&#8221; if len(haslo) &gt;= 8:&nbsp;&nbsp;&nbsp;&nbsp;print(&#8222;Has\u0142o poprawne&#8221;)else:&nbsp;&nbsp;&nbsp;&nbsp;print(&#8222;Has\u0142o za kr\u00f3tkie&#8221;) Tu realny problem jest prosty: zbyt kr\u00f3tkie has\u0142o oznacza wi\u0119ksze ryzyko utraty konta. To nie jest teoria akademicka, tylko codzienny problem bezpiecze\u0144stwa. Uwagi praktyczne, kt\u00f3re oszcz\u0119dzaj\u0105 czas i ograniczaj\u0105 b\u0142\u0119dy Nie warto wywo\u0142ywa\u0107 len() wielokrotnie dla tego samego obiektu w jednej sekcji kodu, je\u015bli obiekt si\u0119 nie zmienia. Lepiej zapisa\u0107 wynik do zmiennej. Kod mniej wygodny Kod lepszy if len(lista) &gt; 0:&nbsp;&nbsp;&nbsp;&nbsp;print(len(lista)) rozmiar = len(lista)if rozmiar &gt; 0:&nbsp;&nbsp;&nbsp;&nbsp;print(rozmiar) Przy bardzo du\u017cych systemach takie drobiazgi poprawiaj\u0105 czytelno\u015b\u0107. Druga rzecz: nie nale\u017cy myli\u0107 d\u0142ugo\u015bci napisu z liczb\u0105 widocznych znak\u00f3w u\u017cytkownika. Polskie znaki, spacje, znaki ko\u0144ca linii albo Unicode mog\u0105 powodowa\u0107 r\u00f3\u017cnice interpretacyjne. Trzecia sprawa: w przypadku NumPy czy Pandas len() dzia\u0142a, ale nie zawsze oznacza to, czego oczekuje programista. Dla DataFrame zwracana jest liczba wierszy, nie wszystkich kom\u00f3rek. To cz\u0119sto prowadzi do b\u0142\u0119dnych raport\u00f3w i z\u0142ych analiz danych. FAQ Czy len() dzia\u0142a na liczbach ca\u0142kowitych? Nie. Typ int nie posiada d\u0142ugo\u015bci logicznej, wi\u0119c Python zg\u0142osi TypeError. Czy spacja w napisie jest liczona? Tak. Ka\u017cdy znak jest liczony, r\u00f3wnie\u017c spacja, tabulator i znak nowej linii. Czy dla s\u0142ownika liczone s\u0105 warto\u015bci? Nie. Liczone s\u0105 klucze. Czy len() jest szybkie? Dla standardowych struktur danych zazwyczaj tak, poniewa\u017c d\u0142ugo\u015b\u0107 jest przechowywana wewn\u0119trznie i nie trzeba liczy\u0107 element\u00f3w od pocz\u0105tku. Czy mo\u017cna u\u017cywa\u0107 len() we w\u0142asnych klasach? Tak, je\u015bli klasa implementuje metod\u0119 __len__(). Czy len() i size() to to samo? Logicznie tak \u2014 oba mechanizmy zwracaj\u0105 liczb\u0119 element\u00f3w &#8211; ale zale\u017cy to od j\u0119zyka programowania. Python u\u017cywa len(), C++ zwykle .size(). Funkcja d\u0142ugo\u015bci wygl\u0105da niepozornie, ale w praktyce pojawia si\u0119 wsz\u0119dzie: przy walidacji formularzy, analizie plik\u00f3w, pracy z baz\u0105 danych, przetwarzaniu tekstu i sterowaniu p\u0119tlami. To jeden z tych element\u00f3w, kt\u00f3re wydaj\u0105 si\u0119 banalne dopiero do momentu, gdy b\u0142\u0119dna d\u0142ugo\u015b\u0107 danych zaczyna kosztowa\u0107 czas, pieni\u0105dze albo utracone informacje. \u0179r\u00f3d\u0142o Foto: Freepik<\/p>\n","protected":false},"author":1,"featured_media":1494,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27],"tags":[],"class_list":["post-1493","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jezyk-programowania"],"_links":{"self":[{"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/posts\/1493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/comments?post=1493"}],"version-history":[{"count":1,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/posts\/1493\/revisions"}],"predecessor-version":[{"id":1495,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/posts\/1493\/revisions\/1495"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/media\/1494"}],"wp:attachment":[{"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/media?parent=1493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/categories?post=1493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trzykody.pl\/index.php\/wp-json\/wp\/v2\/tags?post=1493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}