2017-10-16 5 views
0

Je suis relativement nouveau dans les structures de données matricielles. J'essaye d'imprimer le modèle ci-dessous en python.Diminuer le nombre des escaliers en python 2.7

12345 
1234 
123 
12 
1 

Voici mon code:

a = [1,2,3,4,5] 
n = len(a) 
for i in range(n, 0, -1): 
    for j in range(i): 
     print a[j], 

Sortie: Je reçois l'ordre. Je ne peux pas sembler arranger la réponse dans le format désiré. Aucune suggestion?

1 2 3 4 5 1 2 3 4 1 2 3 1 2 1 
+1

Ajouter 'print' après boucle interne pour imprimer de nouvelles lignes. – falsetru

+0

Bien que pas une question en double, cela peut être utile de lire https://stackoverflow.com/questions/493386/how-to-print-without-newline-or- espace –

+0

@falsetru J'ai essayé cela. n'arrive pas à le faire fonctionner. Pouvez-vous s'il vous plaît fournir une explication plus élaborée? –

Répondre

1

Si vous êtes vraiment juste intéressés à apprendre les manipulations de la liste, et ne nécessitent pas exactement la sortie que vous avez montré, vous pouvez envisager cette approche, qui utilise l'indexation de la liste de base:

for i in range(n, 0, -1): 
    print(a[:i]) 

sortie:

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

le long de ces lignes, vous pouvez obtenir votre sortie spécifiée en convertissant les valeurs de chaque ligne de taper str, joignant les caractères de chaque ligne, et puis imprimer:

for i in range(n, 0, -1): 
    print(''.join(str(el) for el in a[:i])) 

sortie:

12345 
1234 
123 
12 
1