Informatique/Cours/cours3.py

195 lines
3.2 KiB
Python
Raw Normal View History

2019-11-23 15:22:53 +01:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Oct 4 08:06:51 2019
@author: suwako
"""
# Structures de données
a = [0, 1, 'abc', 4.5, 'de', 6] # un niveau
b = [[], [1], [1, 2], [1, 2, 3]] # deux niveaux
a[2] # On attend 'abc'
b[3][1] # On attend 2
a[1:5] # Slicing
a[1:-1] # La même chose
a[:4] # On peut ommetre une partie
a[-3:]
li = list(range(11)) # Création d'une liste à partir d'une énumération
li[2:9:3] # On peut rajouter un pas
li[3::2]
li[:-1:2]
li[-1:0:-1]
list("Louis-Le-Grand")
[x for x in range(11) if x * x <= 50]
a, b = [1, 2, 3], [2, 4, 6]
[(x, y) for x in a for y in b]
[(x, y, z) for x in range(1, 20) for y in range(x, 20) for z in range(y, 20) if x**2 + y**2 == z**2]
# Concaténation
[2, 4, 6, 8] + [1, 3, 5, 7]
# Duplication
[1, 2, 3]*3
# Mutation
li = list(range(11))
li[3] = 'a'
li[3:7] = 'abc' # On perd un élément ici
li
li = list(range(10))
li[1::2] = li[0::2]
li
li = list(range(11))
del li[3:6] # Suppression d'élements
li
li = ['a', 'b', 'c', 'd']
li.append('e') # Ajout d'élément
li
li.insert(2, 'x') # Insertion d'élément
li
li = list(range(1, 6)) * 2
li.remove(4) # On retire la première occurence de 4
li
li.pop(-1) # Affiche le dernier élement et le retire de la liste
li
li = list(range(1, 4)) * 2
li.reverse() # On renverse la liste ; Attention, une méthode modifie l'objet
li
li.sort() # On trie la liste par ordre croissant
li
sorted(li) # Ici, on trie également, mais on ne modifie pas la liste originale
li
list('abcde') # Transformation de type
str(list('abcde'))
tuple([1, 2, 3, 4])
# Les listes sont mutables
lst = [1, 2, 3]
lst[0] = 4
lst
tup = (1, 2, 3)
tup[0] = 4
chr = 'abc'
chr[0] = 'd'
l1 = [1, 2, 3]
id(l1)
tup1 = (1, 2, 3)
id(tup1)
l1[0] = 4
id(l1)
tup1 = (4, 2, 3)
id(tup1)
l2 = l1
id(l1) == id(l2)
tup2 = tup1
id(tup1) == id(tup2)
l1[0] = 1
l2
tup1 = (1, 2, 3)
tup2
l3 = l1[:]
l3 = l1.copy()
l3 = [x for x in l1]
l1 = [[1, 2, 3], [4, 5, 6]]
l2 = l1[:]
id(l1) == id(l2)
id(l1[0]) == id(l2[0])
from copy import deepcopy
l3 = deepcopy(l1)
id(l1) == id(l3)
id(l1[0]) == id(l3[0])
def somme(l):
s = 0
for x in l:
s += x
return s
def moyenne(l):
s = 0
for x in l:
s += x
return s / len(l)
def variance(l):
n = len(l)
s = c = 0
for x in l:
s += x
c += x * x
return c/n - (s/n) * (s/n)
def maximum(l):
m = l[0]
for x in l:
if x > m:
m = x
return m
def indice_max(l):
i, m = 0, l[0]
for k in range(1, len(l)):
if l[k] > m:
i, m = k, l[k]
return i
def maximum(l):
m = l[0]
for x in l:
if x > m:
m = x
return m
def indice_du_max(l):
i, m = 0, l[0]
for (k, x) in enumerate(l):
if x > m:
i, m = k, x
return i
def cherche(x, l):
k, rep = 0, False
while k < len(l) and not rep:
rep = l[k] == x
k += 1
return rep
def cherche(x, l):
for y in l:
if y == x:
return True
return False
(x in l)
def cherche_dicho(x, l):
i, j = 0, len(l)
while i < j:
k = (i + j) // 2
if l[k] == x:
return True
elif l[k] > x:
j = k
else:
i = k + 1
return False