Python kurz v Slovenčine | Lekcia 24 | List comprehensions

preview_player
Показать описание
Ďalšie materiály:

Jedinečný kurz python v Slovenčine pre absolútnych začiatočníkov. Mišo je skúsený online učiteľ a zároveň bývalý doktorand fakulty informatiky a informačných technológii na STU (FIIT).

Prosím odberajte kanál, aby ste zostali informovaní o novikách Informatiky s Mišom. Taktiež kurz zdieľajte svojím priateľom a učiteľom informatiky. Chceme naučiť programovať absolútne každého. Ďakujeme!! Nové lekcie v tomto kurze postujem 2 až 3 krát za týždeň.

#python #pythonkurz #listcomprehensions

Časová os:
00:00 Úvod
00:31 Čo je to list comprehension
03:56 List comprehensions (technická časť)
09:28 Iné užitočné triky (technická časť)
13:59 Zhrnutie a záver
Рекомендации по теме
Комментарии
Автор

Můj první comprehension list, který funguje:) Moc díky za skvělé vysvětlení! Konečně jsem to pochopila.
def list_of_lists(numbers):
return [list(range(0, number + 1)) for number in numbers if number >= 0]

HaarRheus
Автор

Ahoj!
Napsala jsem to takto:
list_of_lists=[0, 2, 3, 2]
new_lists=[list(range(0, number+1)) for number in list_of_lists]
print(new_lists)

Terinkacz
Автор

na codewars, kde si precvicujem veci, ktore sa naucim som to videl tak casto a tolkokrat som sa to snazil napodobnit ale neuspesne... konecne som to ale pochopil :) vdaka za vysvetlenie, na prvy krat sa mi spravne podarilo napisat zopar vlastnych vratane zadanej ulohy, velka vdaka za dalsie super video...

troSKA
Автор

array = [1, 2, 3, 4]
outcome = []

def list_of_lists(array):
for number in array:
result = [numbers for numbers in range(0, number + 1)]
outcome.append(result)
print(outcome)

list_of_lists(array)

dominikhudak
Автор

Mna napadlo to urobit pomocou dvoch list comprehensions.

def list_of_lists(lst: list) -> list:
result = [[number for number in range(0, numbers + 1)] for numbers in lst]
return result
print(list_of_lists([0, 2, 3, 2]))

Ale spojenie funkcie list a range je asi efektivnejsie 🙂

jankravec
Автор

Moje riesenie:
pole1 = [1, 3, 5, 10, 15]

def vytvorenie_pola(cislo):
pole = []
for cislo in range(0, cislo + 1):
if cislo != 0:
pole.append(cislo - 1)
pole.append(cislo)
pole.sort()
return pole

result = [vytvorenie_pola(cislo1) for cislo1 in pole1]
print(result)

vandrujemesk
Автор

Ahoj Miso, dovolim si pridat moje riesenie ulohy. Dakujem a prajem pekny den.

def list_of_lists(arr):
result = [list(range(0, number+1)) for number in arr]
print(result)

list_of_lists([0, 2, 3, 2])

marekmolcan
Автор

Pokud nebudu trvat na přesném splnění zadání, že je třeba vlastní funkce, tak není třeba funkce (vlastní), ale stačí dva vnořené list comprehensions a standardní funkce iter()

arr = [5, 3, 2, 1, 4, 0]
res = [[z for z in x] for x in iter([range(number + 1) for number in arr])]
print(res)

Akorát že pro 0 (nula) to nemá vracet nic, protože Mišo má blbě to zadání. On tam říká (a píše), že pro "pole celých čísel větších než 0" a pak přitom v příkladu má pole i s nulou jako jednu z položek...

petrvavrinec
Автор

seznam=[0, 2, 3, -8]

print([list(range(0, numb+1)) for numb in seznam if numb>=0])

vojtechleskovsky
Автор

Ahoj Mišo, přidávám řešení. V komentářích má Marek u svého řešení print v definici funkce, není to bad practice? Stejne jako třeba input dát do definice funkce. Četl jsem, že se při importu modulu se celý provede a případný print by se tedy taky nechtěně provedl a input dokonce kód zastavil a čekal za zadání vstutpu. Je to tak? Dík za super videa!

from typing import List

def list_of_list(array: List[int]) -> List[List[int]]:
return [list(range(number + 1)) for number in array]

Tom-bczj
Автор

def
list = [[j for j in range(0, i+1)] for i in integers if i>=0]
print(list)

list_of_lists([0, 2, 3, 2])

filiplancaric
Автор

Chcel by som sa spýtať prečo je pred range list ja som spravil všetko rovnako ale bez toho list a nefungovalo to

mamamajmamamaj
Автор

Ahoj, nevie mi niekto poradiť prečo dostávam invalit syntax ?
string = "jano je blb"
print(string)
toto je kod, skúšal som aj string = ("jano je blb"
)
print(string)

janmarecek
Автор

RADOSŤ, aj keď neviem prečo všetci majú tento kód na 2 riadky:

field_number = [10, 3, 8]
final_array = []
temporal_array = []
y =0
def number_visualizer(array):
global y
x= 0
temporal_array = []
while x <= array[y]:
temporal_array.append(x)
x +=1
y += 1
return temporal_array
for num in field_number])

ondrejpriskin