繁体   English   中英

删除列表中的相似数字

[英]Remove similar numbers in a list

如何从以下列表中删除 86.1 和 90.1(或 86.2 和 90.2)之类的数字?

86.1      86.2       90.1      90.2

定义一个阈值,迭代排序的数字并将阈值内的数字相加:

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

结果.附加(数量/计数)

尝试这个:

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)

在 Stack Overflow 帖子中从 Python 列表中删除列表,您有更多信息。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM