L'obtention de la plage de données à partir d'une liste en Python
J'ai un jeu de données dans une liste. Je ne suis pas sûr de savoir comment faire une fonction qui peut prendre la gamme de données et de retourner les valeurs min et max dans un tuple.
de données:
[1,3,4,463,2,3,6,8,9,4,254,6,72]
mon code pour le moment:
def getrange(data):
result=[]
if i,c in data:
range1 = min(data)
range2 = max(data)
result.append(range1, range2)
return result
Qu'est-ce que cette ligne -
Il n'est pas clair ce que tu veux dire par "plage de données". Voulez-vous dire une gamme indiquant une sous-liste? Pouvez-vous donner des exemples montrant d'entrée et de sortie souhaité pour la fonction que vous essayez d'écrire?
ne vous voulez juste
ou
if i,c in data:
? Et est votre question à propos de simplement retourner le max et le min de la valeur des données comme un tuple?Il n'est pas clair ce que tu veux dire par "plage de données". Voulez-vous dire une gamme indiquant une sous-liste? Pouvez-vous donner des exemples montrant d'entrée et de sortie souhaité pour la fonction que vous essayez d'écrire?
ne vous voulez juste
min(data), max(data)
?ou
mins,maxs = sorted(lists)[0],sorted(lists)[-1]
OriginalL'auteur Ninja | 2015-08-22
Vous devez vous connecter pour publier un commentaire.
C'est une très simple question et vous êtes très proche. Si ce que j'ai ci-dessous n'est pas correct, veuillez modifier votre question afin de refléter ce que vous voulez.
De l'essayer.
Sémantique
Être prudent ici, vous êtes à l'aide de python termes de manière contradictoire. En python, il existe deux ensembles et des listes. Je pourrais dire que vous vouliez en faire la liste ici, mais vous pourriez confondre les gens dans l'avenir. Rappelez-vous, en python ensembles, tuples, listes sont tous différents les uns des autres.
Ici sont les différences (prises à partir du BlackJack commentaire ci-dessous)
Immuable - le type de données ne peut pas être changé après l'instanciation.
Commandé - l'ordre des éléments dans le type de données sont persistantes.
Valeurs uniques - le type de données ne peut pas avoir des valeurs répétées.
Semble que sa vas faire 2*O(n) (je sais, je sais, big-o rejets constants) en raison de la numérisation itérable deux fois? (À moins que vous pouvez connaître les données sont stockées dans l'ordre de tri). Vous ne savez pas si il y a un besoin d'optimiser et d'analyse une fois, suivi de min et max, otoh, que peut-être, min() et max() sont exécutées au plus bas (plus optimisé niveaux)?
vous apportez un bon point qui est encapsulé dans Renai de réponse. Alors qu'il est toujours bon de regarder l'ensemble de l'évolutivité de la solution, il semble que le ninja est juste de commencer et est toujours enveloppant sa tête autour des bases de python. Ma réponse était pour l'aider à réaliser qu'il n'avait pas besoin de le
result
liste ou laif
déclaration.Renai la réponse est encore tri de la liste deux fois. Un simple optimisé one-liner serait:
min, max = sorted(data)[::len(data)-1]
Les Tuples et les jeux ne sont pas synonymes. Les Tuples sont commandés, immuable, et peut contenir la même valeur à plusieurs reprises. Les ensembles sont non ordonnée, mutable, et chaque valeur est unique.
OriginalL'auteur Austin A
Si Vous Êtes À La Recherche Pour Obtenir La Gamme Des Nombres, Vous Pouvez Utiliser:
J'ai Aussi Construit Ce Code Que Vous Pouvez Utiliser Dans la recherche de Moyennes:
Tout Ce Que Vous Devez Faire Est De Taper
average([1, 2, 3])
Pour Obtenir La Moyenne Pour 1, 2 Et 3. Pour Les Autres Commandes, Neaverage([1, 2, 3, 'median')
Et Cela Donnera À La Médiane Des Nombres. Vous Pouvez Modifier médiane: dire, mode, médiane, min, max et gammeOriginalL'auteur Richie Bendall
J'aime NumPy est
percentile
fonction de la capacité d'obtenir de multiples percentiles à la fois:De sortie:
(Le minimum est de 0 % percentile, et le maximum est de 100 % centile.)
Si vous avez vraiment besoin le résultat dans un tuple, vous pouvez facilement l'envelopper avec
tuple(...)
.OriginalL'auteur Falko