Objets itérables : tuples, listes, tableaux : Différence entre versions

De WikiMéca
Sauter à la navigation Sauter à la recherche
(Instructions communes aux objets de types séquentiels)
Ligne 44 : Ligne 44 :
 
</pre>
 
</pre>
 
|-
 
|-
|Pour listes, tableaux, chaines, tuples
+
|Pour listes et tableaux
  
 
<syntaxhighlight lang="Python" inline>s[i]=valeur</syntaxhighlight>  
 
<syntaxhighlight lang="Python" inline>s[i]=valeur</syntaxhighlight>  
|Assignation d'une valeur à l'élément i de s  
+
|Assignation d'une valeur à l'élément i de s.
 +
 
 +
'''Impossible pour les chaines et tupples.''' Voir ...
 
|rowspan="3"|<pre>>>>s=[1,2,3]
 
|rowspan="3"|<pre>>>>s=[1,2,3]
 
>>>s[0]
 
>>>s[0]

Version du 19 août 2019 à 15:05

Un objet itérable est une variable contenant plusieurs autres variables que l’on peut parcourir de façon séquentielle à l'aide d'une boucle, par exemple : for x in objet_iterable ou x prendra successivement la valeur de chaque élément de l'objet itérable.

Les objets itérables que l’on rencontrera le plus souvent sont :

  • Les chaînes de caractères (type str)
  • Les tuples (type tuple)
  • Les listes (type list)
  • Les tableaux (type ndarray)

Instructions communes aux objets de types séquentiels

Soit s et t des objets de type séquentiel. et i, j, k et n des entiers.

Opération Résultat Exemple
Listes :

s=[valeur1,valeur2,...]

Tableaux (nécessite le module numpy):

s=numpy.array([valeur1,valeur2,...])

Tuples :

s=(valeur1,valeur2,...)

Chaines de caractères :

s='abcdef'

Initialisation d'une liste, d'un tableau, d'un tuple, d'une chaine avec valeur1,valeur2,...
>>>liste=[1,2,3]  
>>>liste
[1,2,3]
>>>tableau=numpy.array([1,2,3])
>>>tableau
array([1, 2, 3])
>>>tuple=(1,2,3)
>>>tuple
(1,2,3)
>>>chaine='abcdef'
>>>chaine
'abcdef'
Pour listes et tableaux

s[i]=valeur

Assignation d'une valeur à l'élément i de s.

Impossible pour les chaines et tupples. Voir ...

>>>s=[1,2,3]
>>>s[0]
1
>>>s[2]
3
>>>s[0]=2
>>>s
[2,2,3]
>>>s[-1]
3
Pour listes, tableaux, chaines, tuples

s[i]

Revoie l'élément d'indice i de s
Pour listes, tableaux, chaines, tuples

s[-1]

Revoie le dernier élément de s
Pour listes, tableaux, chaines, tuples

s[i:j]

Tranche de i inclus à j exclu de s
 
>>> s=[1,2,3,4,5]
>>> s[2:4]
[3, 4]
>>> s[1:4:2]
[2, 4]
Pour listes, tableaux, chaines, tuples

s[i:j:k]

Tranche de i inclus à j exclu par pas de k
Pour listes, tableaux, chaines, tuples

len(s)

Longueur de s
 
>>> s=[1,2,3,4,5]
>>> len(s)
5
>>> sum(s)
15
>>> max(s), min(s)
(5, 1)
Pour listes, tableaux, tuples

sum(s)

Somme des éléments de s pour une séquence de nombres
Pour listes, tableaux, tuples, chaines

max(s) et min(s)

maximum et minimun des éléments de s pour une séquence d'éléments ordonnables
Pour listes, tableaux, chaines, tuples

x in s et

x not in s

True si x est dans s, False sinon

et inversement

 
>>>s=[1,2,3,5,6]
>>> 1 in s
True
>>> 6 in s
False
>>> 6 not in s
True
Pour listes, tableaux, chaines, tuples

s+t

Pour les listes

s.extend(t)

Concaténation de s et t
>>> s=[1,2,3]
>>> t=[3,4,5]
>>> s+t
[1, 2, 3, 3, 4, 5]
>>> s.extend(t)  #uniquement pour les listes
>>> s
[1, 2, 3, 3, 4, 5]
Pour listes, tableaux, chaines, tuples

s*n

Concaténation de n copies de s
>>> s=[1,2,3]
>>> s*2
[1, 2, 3, 1, 2, 3]
Pour listes, tableaux, chaines, tuples

s.index(x)

Indice de la première occurrence de x dans s
>>> s=[1,2,3]
>>> s.index(3)
2
>>> s.index(1)
0
>>> s='abc'
>>> s.index('b')
1
Pour listes, chaines, tuples

s.count(x)

Nombre d'occurrences de x dans s
>>> s=[1,2,3,3,4,5]
>>> s.count(2)
1
>>> s.count(3)
2
Pour listes

s.append(x)

Pour les tableaux

numpy.append(s,x)

Ajoute x dans s à la dernière position
>>> s=[1,2,3]
>>> s.append(4)
4
>>> s.count(3)
2
Pour les listes

s.insert(k, x)

Pour les tableaux

numpy.insert(s,k,x)

Ajoute x dans s à la position k
>>> s=[1,2,3]
>>> s.insert(2,4)
>>> s
[1, 2, 4, 3]
Pour les listes

del s[k]

ou s.remove(x)

Pour les tableaux

numpy.delete(s,k)

Supprime le premier élément x dans s ;

Ou supprime l'élément d'indice k dans s

>>> s=[1,2,3,4,5]  #liste
>>> del s[1]
>>> s
[1, 3, 4, 5]
>>> s.remove(4)
>>>s
[1, 3, 5]
>>> s=numpy.array([1,2,3,4])  #tableau
>>> numpy.delete(s,0)
array([2, 3, 4])

Appliquer une fonction à un objet itérable

La fonction la plus appropriée est a priori for x in objet_iterable ou x prendra successivement la valeur de chaque élément de l'objet itérable.

1 def f(x) :
2     return x**2+x -1
3 
4 liste =[1,2,3,4,5]
5 liste2 =[f(x) for x in liste ] # on applique f aux elements de liste
6 print ( liste2 )

Revoie :

[1.0 , 1.6931471805599454 , 2.09861228866811 , 2.386294361119891 , 2.6094379124341005]

On peut également mettre une condition if (listes en compréhension)

1 def f(x) :
2     return math.log (x)+1
3 liste =[ -1 ,0 ,1 ,2 ,3 ,4 ,5]
4 liste2 =[f(x) for x in liste if x > 0] # on applique f aux elements qui sont > 0
5 print ( liste2 )

Revoie :

[1.0 , 1.6931471805599454 , 2.09861228866811 , 2.386294361119891 , 2.6094379124341005]

Autres pages de la catégorie "Informatique"

Pages relatives à l'informatique en CPGE scientifiques.

Bases du langage Python

Algorithmes et méthodes numériques‎