Je me donne un fichier texte qui ressemble à ce qui suit ...Problème en utilisant le tri par insertion avec une liste Python
hello 20
world 30
i'm 50
ok 20
Je suis en train d'utiliser le tri par insertion pour organiser la partie numérique des données. Mon code ressemble à ce qui suit ...
def insertion_sort():
filename = input('Enter filename: ')
lst = []
for line in open(filename):
lst.append(int(line))
print(lst)
for index in range(1,len(lst)):
value = lst[index]
leftvalue = index -1
while leftvalue >= 0 and lst[leftvalue] > value:
if value < lst[leftvalue]:
lst[leftvalue + 1] = lst[leftvalue]
lst[leftvalue] = value
leftvalue = leftvalue - 1
else:
break
return lst == insertion_sort()
Je reçois l'erreur suivante ... ValueError: invalid literal for int() with base 10: 'Merchant_0 96918\n'
J'ai essayé d'utiliser flotteur en remplacement avec int, mais je ne peux pas convertir des chaînes de flotteurs .
Eh bien, quel entier pensez-vous que la chaîne 'Merchant_0 96918 \ n' devrait convertir en? –
Il devrait convertir au nombre 96918 – steve
Alors qu'avez-vous essayé, afin d'extraire la partie de la chaîne que vous voulez convertir en entier? Quelles fonctions de gestion de chaînes en Python connaissez-vous? –