56 lines
1.5 KiB
Org Mode
56 lines
1.5 KiB
Org Mode
:PROPERTIES:
|
|
:ID: acda43fa-70be-4939-9128-47114e48e4cb
|
|
:mtime: 20220528183525
|
|
:ctime: 20220527190024
|
|
:END:
|
|
#+title: Fonction zip
|
|
|
|
* Introduction
|
|
Fonction /built-in/ permettant l'itération de plusieurs /iterable/ à la fois :
|
|
* Si les /iterable/ n'ont pas le même nombre d'éléments, /zip/ arrêtera une fois le plus court atteint.
|
|
|
|
* Howto
|
|
** /Iterable/ de tailles différentes
|
|
#+BEGIN_SRC python :results output
|
|
firsts = ["Anna", "Bob", "Charles", "Chris"]
|
|
middles = ["Z.", "A.", "G."]
|
|
lasts = ["Smith", "Doe", "Evans"]
|
|
|
|
for it in zip(firsts, middles, lasts):
|
|
print(f'{type(it)=}')
|
|
first, *others = it
|
|
print(f"'{first} {others}'")
|
|
#+END_SRC
|
|
#+RESULTS:
|
|
: type(it)=<class 'tuple'>
|
|
: 'Anna ['Z.', 'Smith']'
|
|
: type(it)=<class 'tuple'>
|
|
: 'Bob ['A.', 'Doe']'
|
|
: type(it)=<class 'tuple'>
|
|
: 'Charles ['G.', 'Evans']'
|
|
|
|
#+BEGIN_SRC python :results output
|
|
firsts = ["Anna", "Bob", "Charles", "Chris"]
|
|
middles = ["Z.", "A.", "G."]
|
|
lasts = ["Smith", "Doe", "Evans"]
|
|
|
|
for first, middle, last in zip(firsts, middles, lasts):
|
|
print(f"'{first} {middle} {last}'")
|
|
#+END_SRC
|
|
#+RESULTS:
|
|
: 'Anna Z. Smith'
|
|
: 'Bob A. Doe'
|
|
: 'Charles G. Evans'
|
|
|
|
** Création d'un /dict/ avec /zip/
|
|
#+BEGIN_SRC python :results output
|
|
firsts = ["Anna", "Bob", "Charles"]
|
|
lasts = ["Smith", "Doe", "Evans"]
|
|
print(f'{dict(zip(firsts, lasts))=}')
|
|
#+END_SRC
|
|
#+RESULTS:
|
|
: dict(zip(firsts, lasts))={'Anna': 'Smith', 'Bob': 'Doe', 'Charles': 'Evans'}
|
|
|
|
* Références
|
|
* [[https://mathspp.com/blog/pydonts/zip-up][Zip up - Pydon't]]
|