Je suis passé par la poste Convert all strings in a list to intMéthode rapide de convertir toutes les chaînes dans une liste aux entiers
Je veux convertir
results = ['1', '2', '3']
à:
results = [1, 2, 3]
Je sais que je peux faites-le par
- carte (int, résultats)
et
- résultats = liste (carte (int, résultats))
Je le veux plus rapide peut-être utiliser numpy ou plus rapide.
code actuel est
from sys import stdin, stdout
import numpy as np
n = int(stdin.readline())
for i in range(0,n):
lone = 0
m = int(stdin.readline())
results = stdin.readline().split()
o = np.array(results, dtype=np.int64)
for j in range (0,m):
if o[j] in o[j+1:m]:
lone = lone +1
elif o[j] in o [0:j]:
lone = lone +1
else:
stdout.write(str(o[j]) + '\n')
if lone == m:
stdout.write ("-1 \n")
S'il vous plaît laissez-moi savoir s'il y a des méthodes pour y parvenir en essayant de travailler avec des milliers de chaînes
Qu'est-ce qui est si lent avec la méthode que vous avez ci-dessus? –
lorsque je travaille sur plus de quelques milliers de chiffres, il faut plus de 6-7 secondes juste pour convertir ces nombres en entiers @BurhanKhalid –
Etes-vous sûr que c'est la partie qui prend le temps? 6 - 7 secondes est une durée GÉANT pour une opération de conversion simple. Cela semble que vous avez un problème ailleurs. Pouvez-vous poster votre code de synchronisation? –