输入一个数列 python编程把偏离大的数值剔除,去除重复数字,按照逆序保存在文件中,每行一个数字并保留两位小数并输出
时间: 2024-10-17 14:10:26 浏览: 34
在Python中,你可以通过以下步骤来实现这个功能:
首先,你需要导入必要的库,如`set`(用于去重),`numpy`(处理数值计算)以及`csv`(用于写入CSV文件)。这里假设输入是一个列表(list)。
```python
import numpy as np
from collections import Counter
import csv
def process_sequence(seq):
# 去重并计算每个元素的频率
freq = dict(Counter(seq))
# 计算每个数值的偏离程度,这里我们简单地用原值减去序列平均值
deviation = {k: v - np.mean(seq) for k, v in freq.items()}
# 排序数值,先按偏离程度降序,然后按原始值升序(如果有相同的偏离,则保持原有顺序)
sorted_values = sorted(deviation.items(), key=lambda x: (-abs(x[1]), x[0]))
# 按照需求保留两位小数,并逆序保存到文件
with open('output.csv', 'w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerow(['Value', 'Deviation'])
for value, dev in sorted_values[::-1]:
writer.writerow([round(value, 2), round(dev, 2)])
# 示例数列
input_list = [4, 5, 2, 7, 5, 9, 2, 11, 6, 4]
# 调用函数处理数列
process_sequence(input_list)
```
在这个例子中,我们先对数列进行去重,然后计算每个数偏离均值的程度。接着按照偏离大小(负值表示比平均值低,正值表示比平均值高)进行排序,最后将结果按照指定格式写入CSV文件。
阅读全文