Je fais un programme qui prend un fichier texte qui ressemble à quelque chose comme ceci: p>
1
0
1
1
1 p> blockQuote>et la convertit en liste: p>
['1', '0', '1', '1', '1', '1'] code> p> p>
Le fichier comporte 400 lignes afin que je souhaite la convertir en une matrice de 20 colonnes de 20 rangées. P>
3 Réponses :
Utilisez simplement la tranchée pour le calculer toutes les 20 entrées:
lines = [*range(1,401)] rows_cols = [lines[i:i + 20] for i in range(0, len(lines), 20)]
Remarque: Numpy.Reshape fait cela efficacement dans un Appel de fonction lisible unique, si vous allez faire des calculs numériques avec elle ...
+1 pour la solution one-liner! Pouvez-vous l'écrire comme une addition / édition de manière moins pythonique, il est donc plus facile de comprendre pour les débutants Python?
Ceci permet d'enregistrer le caractère dans 20 colonnes, si ce n'est que le nombre de lignes ne sont pas multiples de 20, il créera une liste moins d'élément que 20 et l'ajoutez dans la liste principale
solu =[] leng = 20 with open('result.txt','r') as f: sol = f.readlines() tmp = [] for i in sol: if len(tmp)<leng: tmp.append(i.strip('\n')) else: print(tmp) solu.append(tmp) tmp=[] solu.append(tmp) print(solu)
Détecter les caractères un par un comptant en même temps combien de caractères avez détectés. Il y a deux cas un cas lorsque vous détectez le caractère et le compteur est inférieur à 20 et l'autre lorsque vous détectez le personnage NewLine pour lequel vous ne mettez pas à jour le compteur. Par conséquent, dans le premier cas, le caractère détecté doit être attribué à la liste (mise à jour en même temps la variable de colonne), tandis que sur l'autre cas, vous pouvez ignorer la nouvelle ligne et continuer avec le caractère suivant du fichier texte si le compteur est moins plus de 20. Dans le cas où le compteur est 20, vous simplement mettre à jour la variable qui représente les lignes de la liste. P>
je fais un programme code> Pouvez-vous montrer ce que vous avez fait jusqu'à présent
Que comptez-vous faire avec ces données une fois que vous l'avez dans votre structure de 20 par 20? Serait-il la peine d'être envisagé de number?