Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

longeur de la sequence dans une liste de s

2 réponses
Avatar
frouty
Bonjour,

Comment faire pour récupérer la longeur de la séquence
dans une liste de sequence:

seq=[[A1,A2,A3,...,An],....,[E1,E2,E3,...,En]]

Je cherche a récupérer la valeur de n.

n sera toujours le meme dans toutes les séquences.

je peux faire len(seq[0]) mais je trouve que c'est pas tres élégant...
Y a quelque chose de plus pythonesque.



Merci

2 réponses

Avatar
Laurent Pointal
frouty wrote:

Bonjour,

Comment faire pour récupérer la longeur de la séquence
dans une liste de sequence:

seq=[[A1,A2,A3,...,An],....,[E1,E2,E3,...,En]]

Je cherche a récupérer la valeur de n.

n sera toujours le meme dans toutes les séquences.

je peux faire len(seq[0]) mais je trouve que c'est pas tres élégant...


Pourquoi?

Si tu es sûr que toutes les séquences sont de même longueur, c'est propre.
Tant que le but n'est pas de vérifier que toutes les séquences sont de même
longueur...

Y a quelque chose de plus pythonesque.


Pas à ma connaissance.

Tu pourrais récupérer toutes les longueurs:
longueurs = [len(s) for s in seq]

Et après récupérer le mini/maxi, voir vérifier qu'ils sont équivalents.
minlong = min(longueurs)
maxlong = max(longueurs)
if minlong!=maxlong: ...

Mais si tu es sûr que les sous-séquences sont toutes de même longueur, c'est
du traitement inutile.

A+

Laurent.

Avatar
Méta-MCI
Bonjour !

Pour récupérer toutes les longueurs, on peut aussi faire :
longueurs = map(len, seq)

C'est plus lisible, mais moins pythonesque que la liste en intention.
- moins pythonesque, parce que les listes en intention sont presque
spécifiquement Python (& haskell)
- ce qui est paradoxal ("plus lisible, mais moins pythonesque")

@+

Michel Claveau