J'essaye d'imprimer une liste et pour chaque 5 index, il imprime une nouvelle ligne. Par exemple, si j'ai:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] .......
le résultat serait:
lst = [1,2,3,4,5,6,7,8,9,10] for i in lst: if len(lst) > 5: print(lst,'\n')
J'ai essayé ceci jusqu'à présent:
XXX
mais tout ce que j'obtiens est:
1 2 3 4 5 6 7 8 9 10
Comment puis-je faire cela?
Merci pour l'aide!
4 Réponses :
A utilisé une boucle for avec un pas:
1 2 3 4 5 6 7 8 9 10
Si vous voulez être plus sophistiqué avec le formatage, vous pouvez utiliser la décompression d'arguments comme ceci: print (* list [i: i + n_indices])
et obtenez des sorties dans ce format:
n_indices = 5 lst = [1,2,3,4,5,6,7,8,9,10] for i in range(0, len(lst), n_indices): print(lst[i:i+n_indices]) >>>[1, 2, 3, 4, 5] >>>[6, 7, 8, 9, 10]
Je suppose qu'il veut une sortie formatée uniquement .join: print ('' .join (lst [i: i + indices]) ... sera bon pour lui :)
Essayez ceci:
1 2 3 4 5 6 7 8 9 10
le résultat sera:
a = [1,2,3,4,5,6,7,8,9,10] for i in [a[c:c+5] for c in range(0,len(a),5) if c%5 == 0]: print(*i)
vous pouvez également remplacer 5
par tout autre nombre ou variable.
Salut, cela vous dérange-t-il si j'utilise l'argument * i
pour le formatage de ma réponse? C'est beaucoup mieux que l'actuel "" .join ()
que j'ai en cours
@Primusa Bien sûr que ça va, je voterai aussi votre réponse.
Pas de problème @Primusa, je pense que c'est bien si vous regardez aussi sep =
dans la fonction print
. c'est bon. quelque chose comme ceci print (* i, sep = '-')
il imprimera: 1-2-3-4-5
Un peu plus idiomatique que les autres réponses:
In [1]: lst = range(1, 10001) In [2]: n = 5 In [3]: %%timeit ...: for group in zip(*[iter(lst)] * n): ...: group ...: 236 µs ± 49.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) In [4]: %%timeit ...: for i in range(0, len(lst), n): ...: lst[i:i+n] ...: 1.32 ms ± 184 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
1 2 3 4 5 6 7 8 9 10
Pour les listes plus volumineuses, c'est aussi beaucoup plus rapide:
n = 5 lst = [1,2,3,4,5,6,7,8,9,10] for group in zip(*[iter(lst)] * n): print(*group)
Quelle est votre sortie si
len (liste)
n'est pas divisible par votre index?