• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Python - część wspólna

VPS Starter Arubacloud
0 głosów
2,548 wizyt
pytanie zadane 3 listopada 2020 w Python przez Hubert731 Obywatel (1,650 p.)

Witam, mógłby ktoś wytłumaczyć tę linijkę kodu?

a = [1, 2, 44, 5]
b = range(10)

 c = [i for i in a if i in b]

Chodzi o część wspólną dwóch list.

Rozumiem wykonanie tego zamieniając listy na zbiory i wykorzystując funkcję "intersection".

Lecz to rozwiązanie jest dużo prostsze, ale nie rozumiem skąd sie to bierze.

 

2 odpowiedzi

0 głosów
odpowiedź 3 listopada 2020 przez Michałełe Nałogowiec (25,600 p.)

To o czym mówisz to list comprehension

Po krótce działa to tak - pierwsza wartość jaką masz w [] (w naszym przypadku i) będzie dodana do tej listy, jeśli warunek jest spełniony.

Później ile razy ta pętla ma się wykonać - u nas ma przejsc przez całe a.

A na koniec jeśli ten if zwróci wartość True, czyli kiedy nasze i jest w b, dodajemy do listy kolejny element

komentarz 3 listopada 2020 przez Hubert731 Obywatel (1,650 p.)
No rozumiem, a pierwsza wartość naszego i to 0 i z każdym wykonaniem pętli dodaje się do niego wartość jeden, dobrze rozumiem?
komentarz 3 listopada 2020 przez Michałełe Nałogowiec (25,600 p.)
Zmienna i to kolejne wartości listy a
komentarz 3 listopada 2020 przez DawidK Nałogowiec (37,910 p.)
pierwsza wartość i to 1 później 2,44 i 5
komentarz 3 listopada 2020 przez Hubert731 Obywatel (1,650 p.)
Jest to pierwsza wartość a, bo wynika to z warunku "i in a", dobrze myślę?
komentarz 3 listopada 2020 przez Hubert731 Obywatel (1,650 p.)
aaaa dobra juz wszystko rozumiem bardzo dziekuej za pomoc :D
0 głosów
odpowiedź 3 listopada 2020 przez DawidK Nałogowiec (37,910 p.)

Ten kod wykorzystuje List Comprehension

Jest to krótsza wersja takiego kodu:

c=[]

for i in a:
    if i in b:
        c.append(i)

 

Podobne pytania

0 głosów
1 odpowiedź 326 wizyt
pytanie zadane 14 października 2022 w Python przez Ichbinda Nowicjusz (230 p.)
+1 głos
1 odpowiedź 695 wizyt
pytanie zadane 2 października 2021 w Python przez jakubjordanek Obywatel (1,320 p.)
0 głosów
1 odpowiedź 439 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...