2016-09-17 2 views
-1

Wie entferne ich Nummern wie 86.1 und 90.1 (oder 86.2 und 90.2) aus der folgenden Liste?Ähnliche Nummern in einer Liste entfernen

86.1  86.2  90.1  90.2 
+0

Kann ich nicht verstehen, was Sie fragen? – Hackaholic

+0

Definieren Sie einen Toleranzwert als 'tolerance = 3', teilen Sie nun jedes Element mit diesem Wert und multiplizieren Sie es mit dem gleichen. Verwenden Sie jetzt 'set', um die gewünschten Ergebnisse zu erhalten. – ZdaR

+0

Wie definieren Sie ähnlich? Welche wird entfernt, wenn zwei ähnlich sind? – Jeon

Antwort

0

eine Schwelle definieren, über die sortierten Zahlen iterieren und die Zahlen innerhalb des Schwellen aufaddieren:

numbers = [86.1, 86.2, 90.1,90.2] 

threshold = 1 
numbers = iter(numbers) 
amount = last = next(numbers) 
count = 1 
result = [] 
for number in sorted(numbers): 
    if number - last > threshold: 
     result.append(amount/count) 
     amount = count = 0 
    amount += number 
    count += 1 
    last = number 

result.append (Menge/count)

0
diese

Versuchen:

base = [86.1, 86.2, 90.1, 90.2] 
# remove = [86.2, 90.2] 
remove = [86.1, 90.1] 

new_list = [item for item in base if item not in remove] 
print(new_list) 

Im Stapelüberlauf Post Remove list from list in Python Sie haben mehr Informationen.

0
inputList=[86.1, 86.2, 90.1, 90.2] 

tolerance=1.0 
out=[] 
for num in inputList: 
    if all([abs(num-outAlready)>tolerance for outAlready in out]): 
     out.append(num) 

print out 
Verwandte Themen