0
votes

une boucle de python simple qui fait une nouvelle ligne une fois qu'elle lit une nouvelle valeur

Je suis nouveau à Python. J'essaie d'appliquer une boucle sur une liste triée. L'idée est chaque fois que la boucle lit une nouvelle valeur différente de la précédente, elle fait une nouvelle ligne avant d'être (l'éditeur que j'utilise est Jupyter Notebook) Ce que j'ai essayé est xxx

la sortie attendue devrait être quelque chose comme ça xxx

mais malheureusement ce code n'a pas fait le travail . Merci pour votre aide, je l'apprécie.


0 commentaires

5 Réponses :


1
votes

Initialiser un Dernier var pour garder la piste et itérer sur votre liste, n'imprimez qu'une nouvelle ligne lorsque l'élément diffère de Dernier xxx

Sortie xxx


0 commentaires

2
votes

Vous pouvez simplement le faire en comparant les éléments de la liste triée, comme suit: xxx

sortie: xxx


3 commentaires

Cela n'imprime pas la dernière valeur de la matrice.


@Tdurnford Merci pour l'indice. J'ai ajouté une autre ligne pour imprimer le dernier élément


C'est une solution. Je recommande de regarder la plage de votre itération et d'ajuster la logique dans votre relevé IF à la place.



1
votes

plus de fantaisie; groupby () : < Pré> xxx


0 commentaires

1
votes

Avec votre code, vous utilisez i code> à itérer via le tableau d code> mais utilise ensuite i code> pour accéder à l'élément du tableau d [i] code> ainsi i == d [i] code> sera vrai pour les trois premières itérations, puis après cela, ce sera faux (par exemple, i = 2 , d [2] = 1 code>, donc (i == d [i]) == false code>. Pas besoin d'un elif Clause Depuis que vous n'êtes inquieté que d'un cas. Utilisez une variable pour garder une trace de l'élément précédent dans la matrice et cela devrait faire le tour.

d=[1,1,1,2,2,3,4,5,5,5]
temp = d[0]
for i in d:
  if temp != i:
     print('\n')
  print(i)
  temp = i


0 commentaires

1
votes

Si le numéro actuel n'est pas égal à précédent, imprimez une nouvelle ligne avant d'imprimer l'élément.

d=[1,1,1,2,2,3,4,5,5,5]

for i in range(len(d)):
  if i > 0 and d[i] != d [i - 1]:
      print('\n')
  print(d[i])


0 commentaires