S'entraîner aux questions d'entrevue de programmation en Python
Kirill Smirnov
Data Science Consultant, Altran
objets itérables / Iterables — tout objet utilisable dans une boucle for
set)liste :
droids = ['R2-D2', 'TC-16', 'C-3PO']
for droid in droids:
print(droid)
R2-D2
TC-16
C-3PO
tuple :
droids = ('R2-D2', 'TC-16', 'C-3PO')
for droid in droids:
print(droid)
R2-D2
TC-16
C-3PO
battleships = {'X-Wing Fighter', 'Millennium Falcon', 'TIE Fighter'}
for battleship in battleships:
print(battleship)
TIE Fighter
X-Wing Fighter
Millennium Falcon
title = 'Star Wars'
for char in title:
print(char)
S
t
a
r
W
a
r
s
episodes = {
'Episode I': 'The Phantom Menace',
'Episode II': 'Attack of the Clones',
'Episode III': 'Revenge of the Sith',
'Episode IV': 'A New Hope',
'Episode V': 'The Empire Strikes Back',
'Episode VI': 'Return of the Jedi'
}
for episode in episodes:
print(episode)
Episode I
Episode II
Episode III
Episode IV
Episode V
Episode VI
episodes = {
'Episode I': 'The Phantom Menace',
'Episode II': 'Attack of the Clones',
'Episode III': 'Revenge of the Sith',
'Episode IV': 'A New Hope',
'Episode V': 'The Empire Strikes Back',
'Episode VI': 'Return of the Jedi'
}
for item in episodes.items():
print(item)
('Episode I', 'The Phantom Menace')
('Episode II', 'Attack of the Clones')
('Episode III', 'Revenge of the Sith')
('Episode IV', 'A New Hope')
('Episode V', 'The Empire Strikes Back')
('Episode VI', 'Return of the Jedi')
episodes = {
'Episode I': 'The Phantom Menace',
'Episode II': 'Attack of the Clones',
'Episode III': 'Revenge of the Sith',
'Episode IV': 'A New Hope',
'Episode V': 'The Empire Strikes Back',
'Episode VI': 'Return of the Jedi'
}
for title, subtitle in episodes.items():
print(title + ': ' + subtitle)
'Episode I': 'The Phantom Menace'
'Episode II': 'Attack of the Clones'
'Episode III': 'Revenge of the Sith'
'Episode IV': 'A New Hope'
'Episode V': 'The Empire Strikes Back'
'Episode VI': 'Return of the Jedi'
interval = range(0, 10)print(interval)
range(0, 10)
for num in interval:
print(num)
0
1
2
...
9
villains = ['Darth Maul', 'Palpatine', 'Darth Vader']
enum_villains = enumerate(villains)
for item in enum_villains:
print(item)
(0, 'Darth Maul')
(1, 'Palpatine')
(2, 'Darth Vader')
villains = ['Darth Maul', 'Palpatine', 'Darth Vader']
enum_villains = enumerate(villains)
for idx, name in enum_villains:
print(str(idx) + ' - ' + name)
0 - Darth Maul
1 - Palpatine
2 - Darth Vader
list(), tuple(), set(), etc.
villains = [
'Darth Maul',
'Palpatine',
'Darth Vader'
]
list(enumerate(villains))
[
(0, 'Darth Maul'),
(1, 'Palpatine'),
(2, 'Darth Vader')
]
list(), tuple(), set(), etc.
villains = [
'Darth Maul',
'Palpatine',
'Darth Vader'
]
list(enumerate(villains))
[
(0, 'Darth Maul'),
...
set(enumerate(villains))
{
(0, 'Darth Maul'),
(1, 'Palpatine'),
(2, 'Darth Vader')
}
interval = range(0, 5)
interval_iter = iter(interval)
print(interval_iter)
<range_iterator object at 0x7f3bdf8ad300>
Itérateur - un objet sachant comment récupérer des éléments consécutifs d'un Itérable un par un
next(interval_iter)
0
next(interval_iter)
1
next(interval_iter)
2
next(interval_iter)
3
next(interval_iter)
4
next(interval_iter)
StopIteration
droids = ['R2-D2', 'TC-16', 'C-3PO']
for droid in droids:
print(droid)
R2-D2
TC-16
C-3PO
iter_droids = iter(droids)while True: try: except StopIteration: break
droids = ['R2-D2', 'TC-16', 'C-3PO']
for droid in droids:
print(droid)
R2-D2
TC-16
C-3PO
iter_droids = iter(droids)while True: try: droid = next(iter_droid) print(droid) except StopIteration: break
R2-D2
TC-16
C-3PO
ex. enumerate, finditer etc.
import re
pattern = re.compile(r'[\w\.]+@[a-z]+\.[a-z]+')
text = '[email protected] is the e-mail of John. He often writes to his boss '\
'at [email protected]. But the messages get forwarded to his secretary at [email protected].'
result = re.finditer(pattern, text)
iter()
result = re.finditer(pattern, text)
for item in result:
print(item)
<_sre.SRE_Match object; span=(0, 22), match='[email protected]'>
<_sre.SRE_Match object; span=(77, 93), match='[email protected]'>
<_sre.SRE_Match object; span=(146, 162), match='[email protected]'>
next()
result = re.finditer(pattern, text)
next(result)
<_sre.SRE_Match object; span=(0, 22),
match='[email protected]'>
next(result)
<_sre.SRE_Match object; span=(77, 93),
match='[email protected]'>
next(result)
<_sre.SRE_Match object; span=(146, 162),
match='[email protected]'>
result = re.finditer(pattern, text)
for item in result:
print(item)
<_sre.SRE_Match object; ...
<_sre.SRE_Match object; ...
<_sre.SRE_Match object; ...
for item in result:
print(item)
# nothing
short_list = [2, 4]
for item in short_list:
print(item)
2
4
for item in short_list:
print(item)
2
4
pars = {'weight': [168, 183, 198], 'height': [77, 79, 135]}
characters = pd.DataFrame(pars, index=['Luke Skywalker', 'Han Solo', 'Darth Vader'])
print(characters)
weight height
Luke Skywalker 168 77
Han Solo 183 79
Darth Vader 198 135
for item in characters:
print(item)
weight
height
result = characters.iterrows()
print(result)
<generator object DataFrame.iterrows at 0x7f5dff6b9c50>
result = characters.iterrows()
for item in result:
print(item)
item $\rightarrow$ (nom de l'index, Series)
('Luke Skywalker',
weight 168
height 77
Name: Luke Skywalker, dtype: int64)
('Han Solo',
weight 183
height 79
Name: Han Solo, dtype: int64)
('Darth Vader',
weight 198
height 135
Name: Darth Vader, dtype: int64)
result = characters.iterrows()
for index, series in result:
print(index)
print(series)
Luke Skywalker
weight 168
height 77
Name: Luke Skywalker, dtype: int64)
Han Solo
weight 183
height 79
Name: Han Solo, dtype: int64)
Darth Vader
weight 198
height 135
Name: Darth Vader, dtype: int64)
result = characters.iteritems()
print(result)
<generator object DataFrame.iteritems at 0x7f5dff69f938>
result = characters.iteritems()
for item in result:
print(item)
item $\rightarrow$ (nom de la colonne, Series)
('weight',
Luke Skywalker 168
Han Solo 183
Darth Vader 198
Name: weight, dtype: int64)
('height',
Luke Skywalker 77
Han Solo 79
Darth Vader 135
Name: height, dtype: int64)
result = characters.iteritems()
for name, series in result:
print(name)
print(series)
weight
Luke Skywalker 168
Han Solo 183
Darth Vader 198
Name: weight, dtype: int64
height
Luke Skywalker 77
Han Solo 79
Darth Vader 135
Name: height, dtype: int64
S'entraîner aux questions d'entrevue de programmation en Python