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?