Un itérable entant que dictionnaire¶
In [1]:
s = "ali" # est une chaine de caractère
dict_s = { 0: "a", 1: "l", 2: "i", } # est un dictionnaire qui peut représenter la chaine de caractère s
l = [1, 2, 3, 4, 5] # est une liste
dict_l = { 0: 1, 1: 2, 2: 3, 3: 4, 4: 5, } # est un dictionnaire qui peut représenter la liste l
t = (1, 2, 3, 4, 5) # est un tuple
dict_t = { 0: 1, 1: 2, 2: 3, 3: 4, 4: 5,
} # est un dictionnaire qui peut représenter le tuple t
r = range(5) # est un range
dict_r = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4,
} # est un dictionnaire qui peut représenter le range r
s = {1, 2, 3, 4, 5} # est un set
dict_s = { 0: 1, 1: 2, 2: 3, 3: 4, 4: 5,
} # est un dictionnaire qui peut représenter le set s
Exercice: lire un entier?
In [2]:
# Sans exigence
x=int(input('donner un entier'))
#Plus exigeant
x_str = input("donner un entier")
if x_str.isdigit():
x = int(x_str)
Itérable en compréhension¶
- Exercice: donner l ensemble des racine carre arrondi(2 chiffres apres la virgule) des entiers qui sont:
- entre 0 et 10000
- sont divisible par 3, 5, 7, et 11
In [3]:
# (Avec comprehension)
from math import sqrt
e = {
round(sqrt(x), 2)
for x in range(10001)
if x % 3 == 0
if x % 5 == 0
if x % 7 == 0
if x % 11 == 0
}
# Ou bien
e = {
round(sqrt(x), 2)
for x in range(10001)
if (x % 3 == 0 and x % 5 == 0 and x % 7 == 0 and x % 11 == 0)
}
# Ou bien
e = {round(sqrt(x), 2) for x in range(10001) if (x % (3 * 5 * 7 * 11) == 0)}
e
Out[3]:
{0.0, 33.99, 48.06, 58.86, 67.97, 75.99, 83.25, 89.92, 96.12}
In [4]:
# Ou bien (sans comprehension)
ee = set()
for x in range(10001):
if x % 3 == 0 and x % 5 == 0 and x % 7 == 0 and x % 11 == 0:
ee.add(round(sqrt(x), 2))
ee
Out[4]:
{0.0, 33.99, 48.06, 58.86, 67.97, 75.99, 83.25, 89.92, 96.12}
In [5]:
t = tuple(l)
t
Out[5]:
(1, 2, 3, 4, 5)
Exercice: creer ce dictionnaire: d={'etud_0':02,....,'etud_i':i2,'etud_10':10**2 }
In [6]:
d = {"etud_{}".format(i): i**2 for i in range(11)}
# Ou bien
d = {"etud_" + str(i): i**2 for i in range(11)}
# Ou bien
d = {f"etud_{i}": i**2 for i in range(11)}
d
Out[6]:
{'etud_0': 0,
'etud_1': 1,
'etud_2': 4,
'etud_3': 9,
'etud_4': 16,
'etud_5': 25,
'etud_6': 36,
'etud_7': 49,
'etud_8': 64,
'etud_9': 81,
'etud_10': 100}
In [ ]:
# Ou bien (sans comprehension)
dd = {}
for x in range(11):
cle = f"etud_{x}"
# cle='etud_'+str(x)
dd[cle] = x**2
Exercice: A partir de liste de mots L, donner la liste mot en majuscule
In [8]:
l = ["sa7ar", "achraf", "ala", "lakhal"]
L = [esm.upper() for esm in l]
L
Out[8]:
['SA7AR', 'ACHRAF', 'ALA', 'LAKHAL']
Exercice: donner le dictionnaire ds: s='bonjoue tout le monde' ===> ds={0:'b',1:'o',......}
In [9]:
s = "bonjoue tout le monde"
# 1ere methode (avec comprehension)
ds = {i: s[i] for i in range(len(s))}
# 2eme methode (sans comprehension)
ds = {}
for i in range(len(s)):
d[i] = s[i]
# x=int(input('donner un entier'))
Exercice: dictionnaire qui répresente la fréquence de chaque lettres voyelles
s='bonjoue tout le monde' ===> freq_voy={'o':4,e:3,......}
In [10]:
s = "bonjoue tout le monde"
freq_voy = {car: s.count(car) for car in set(s) if car in "uioeya"}
# Ou bien
freq_voy = {car: s.count(car) for car in "uioeya" if car in s}
freq_voy
Out[10]:
{'u': 2, 'o': 4, 'e': 3}
Effacer un itérable¶
In [11]:
l = [1, 2]
l.clear()
l
s = {1, 2}
s.clear()
s
d = {"a": 1, "b": 2}
d.clear()
d
Out[11]:
{}
In [12]:
l = list(range(10))
l
# l=[]
l.clear()
L'execution de la commande se fait du gauche vers la droite¶
In [13]:
x = 1
y = 2
z = x + y
z # z=3
d0 = {
"a": 1,
"b": 2,
"c": 3,
"a": 10,
"a": -5,
} # les cles doivent etre uniques. # la derniere valeur de la cle est prise en compte
d0
Out[13]:
{'a': -5, 'b': 2, 'c': 3}
In [14]:
éd0 = {"a": 1, "b": 2, "c": 3}
d1 = {"c": 30, "e": 40, "f": 50}
d0.update(d1)
d0
Out[14]:
{'a': -5, 'b': 2, 'c': 30, 'e': 40, 'f': 50}
In [15]:
# sum(I) prend en parametre un iterable I
sum((1, 2)) # --> 3
sum([1, 2]) # --> 3
# sum({1,2}) # --> 3
sum({1: "a", 2.5: "s"}) # --> 3.5
Out[15]:
3.5