Comprendre l'Itérabilité en Python

Les structures de données itérables
Vidéo non disponible ! Réessayez plus tard
Cette vidéo fait partie de la formation
Maîtriser Python - Techniques avancées
Revoir le teaser Je m'abonne
5,0
Transcription

Cette leçon fait partie de la formation
99,00€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

DescriptionProgrammeAvis
5,0
Cette leçon fait partie de la formation
99,00€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

Les objectifs de cette vidéo incluent :
- Comprendre la notion d'itérabilité en Python.
- Apprendre à utiliser la fonction ITER pour vérifier si un objet est itérable.
- Découvrir le fonctionnement des itérators et des boucles FOR.
- Explorer l'unpacking et ses applications dans les scripts Python.

Cette leçon explore l'itérabilité en Python, montrant comment les structures de données comme les listes, les tuples et les sets peuvent être parcourues à l'aide de boucles FOR.

Dans cette leçon, nous plongeons dans le concept d'itérabilité en Python, une caractéristique commune à de nombreuses structures de données. En apprenant à utiliser la fonction ITER, vous découvrirez comment vérifier si un objet est itérable. Nous examinerons également le rôle crucial des objets itérators et comment ils interagissent avec les boucles FOR. En plus des collections classiques comme les listes et les dictionnaires, vous apprendrez que même des chaînes de caractères et des fichiers peuvent être itérables, offrant une grande flexibilité dans le traitement des données. Enfin, nous mettrons en lumière le processus d'unpacking et démontrerons comment il peut être utilisé pour décomposer des itérables en variables distinctes. Cette leçon fournit une approche compréhensive en utilisant des exemples concrets pour illustrer chaque concept.

Voir plus
Questions réponses
Quel est l'avantage principal de l'itérabilité en Python ?
L'avantage principal de l'itérabilité en Python est qu'elle permet de parcourir et traiter des collections de manière uniforme et efficace, indépendamment de leur type sous-jacent.
Comment vérifie-t-on si un objet est itérable en Python ?
On peut vérifier si un objet est itérable en appelant la fonction ITER sur cet objet. Si aucun itérateur n'est retourné, cela signifie que l'objet n'est pas itérable.
Qu'est-ce que l'unpacking en Python et comment est-ce utilisé ?
L'unpacking en Python permet de décomposer un itérable en variables individuelles. Par exemple, en utilisant a, b, c = 'ABC', les variables a, b, et c contiendront respectivement 'A', 'B', et 'C'.

Programme détaillé

3 commentaires
5,0
3 votes
5
4
3
2
1
xavier.leleu
Il y a 4 mois
Bonjour,
Les thèmes variés agrémentés d'exemples simples et clairs enrichissent toutes les notions exposées de façon particulièrement pédagogique. 👍
L'approche didactique m'a permis de beaucoup mieux comprendre tout un tas de concepts plus ou moins bien assimilés auparavant avec une vue d'ensemble nettement plus limpide aujourd'hui. 🤓
Merci pour cette belle prestation. 🙏
michelkreutner
Il y a 1 an
Les explications sont claires et concises. Ce cours sur l'utilisation avancée de Python est tres intéressant. Il vous apportera des connaissances que vous pourrez ensuite approfondir.
Je suis vraiment tres satisfait par cette première formation suivie sur Python.
yvan.vogel
Il y a 3 ans
Hello, sur la video autour de asyncio, vous utilisez python 2.7.12. J'utilise python 3.10, aussi je souhaite faire partager mon code (qui fonctionne) selon ma vision et compréhension sur le sujet d'étude que vous avez proposé. Yvan Vogel.

#CODE en python 3.10.0 64 bits (VScode 1.62.3)
import datetime
import asyncio
import aiohttp
import requests


# ----------------------------------------------------------------------------------------------------------------------------
def req_bloquante(num):
print(f"Get {num}")
uid = requests.get("https://httpbin.org/uuid").json()["uuid"]
print(f"Res {num}: {uid}")


def faire_toutes_les_requetes():
for x in range(51):
req_bloquante(x)


print("=====> ### Bloquant : ")
start = datetime.datetime.now()
faire_toutes_les_requetes()
exec_time = (datetime.datetime.now() - start).seconds
print(f"Downloading all take {exec_time} seconds\n")

# ----------------------------------------------------------------------------------------------------------------------------


async def requeteSansBloquer(semaphore, num, session):
print(f"Get {num}")
# await semaphore.acquire() # putting this await semaphore commande the Res is ordering but process very slow ~60 sec
async with session.get("https://httpbin.org/uuid") as response:
uid = (await response.json())["uuid"]
# await asyncio.sleep(delay=3) #delay = number of seconds
# semaphore.release()
print(f"Res {num}: {uid}")
# return uid # ?


async def main():
semaphore = asyncio.Semaphore(value=1)
tasks = []
async with aiohttp.ClientSession(
loop=loop, connector=aiohttp.TCPConnector(ssl=False)
) as session:
for x in range(51):
tasks.append(requeteSansBloquer(semaphore, x, session))
await asyncio.gather(*tasks)
print("This is after the loop...")


if __name__ == "__main__":
print("=====> ### Non Bloquant : ")
start = datetime.datetime.now()
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
exec_time = (datetime.datetime.now() - start).microseconds
print(f"Downloading all take {exec_time} micro seconds\n")