J'aimerais lire les nombres du fichier dans un tableau à deux dimensions.
Contenu du fichier :
- ligne contenant w, h
- h lignes contenant w entiers séparés par un espace
Par exemple:
4 3
1 2 3 4
2 3 4 5
6 7 8 9
J'aimerais lire les nombres du fichier dans un tableau à deux dimensions.
Contenu du fichier :
Par exemple:
4 3
1 2 3 4
2 3 4 5
6 7 8 9
En supposant que vous n'ayez pas d'espaces superflus :
with open('file') as f:
w, h = [int(x) for x in next(f).split()] # read first line
array = []
for line in f: # read rest of lines
array.append([int(x) for x in line.split()])
Vous pouvez condenser la dernière boucle for en une compréhension de liste imbriquée :
with open('file') as f:
w, h = [int(x) for x in next(f).split()]
array = [[int(x) for x in line.split()] for line in f]
Je ne sais pas pourquoi avez-vous besoin de w, h. Si ces valeurs sont réellement requises et signifient que seul le nombre spécifié de lignes et de colonnes doit être lu, vous pouvez essayer ce qui suit :
output = []
with open(r'c:\file.txt', 'r') as f:
w, h = map(int, f.readline().split())
tmp = []
for i, line in enumerate(f):
if i == h:
break
tmp.append(map(int, line.split()[:w]))
output.append(tmp)
Pour simplifier la réponse, voici un programme qui lit les entiers du fichier et les trie
f = open("input.txt", 'r')
nums = f.readlines()
nums = [int(i) for i in nums]
Après avoir lu chaque ligne du fichier, converti chaque chaîne en un chiffre
nums.sort()
Trier les nombres
f.close()
f = open("input.txt", 'w')
for num in nums:
f.write("%d\n" %num)
f.close()
Les réécrire Aussi simple que cela, j'espère que cela vous aidera
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.