python定义数据处理类, 能够实现一维数据的管理, 具体包括输入数据, 增、删、改、查数据, 对数据进行排序. 如果数据已经被排序, 则查找数据使用二分查找。
时间: 2024-12-20 08:29:13 浏览: 3
在Python中,我们可以定义一个名为`DataProcessor`的数据处理类,它专注于操作一维数据列表。下面是一个简单的实现:
```python
class DataProcessor:
def __init__(self):
self.data = []
# 输入数据
def add_data(self, value):
self.data.append(value)
# 增加数据
def insert_data(self, index, value):
if index < len(self.data):
self.data.insert(index, value)
else:
print("Index out of range.")
# 删除数据
def remove_data(self, index):
if 0 <= index < len(self.data):
del self.data[index]
else:
print("Index not found.")
# 修改数据
def update_data(self, old_value, new_value):
if old_value in self.data:
self.data[self.data.index(old_value)] = new_value
else:
print("Old value not found.")
# 查询数据
def search_data(self, value):
if self.is_sorted():
# 使用二分查找,效率更高
low, high = 0, len(self.data) - 1
while low <= high:
mid = (low + high) // 2
if self.data[mid] == value:
return mid
elif self.data[mid] < value:
low = mid + 1
else:
high = mid - 1
return -1 # 没找到
else:
return self.data.index(value) if value in self.data else -1 # 非有序数据直接遍历
# 数据排序
def sort_data(self, reverse=False):
self.data.sort(reverse=reverse)
def is_sorted(self):
return self.data == sorted(self.data) or all(self.data[i] >= self.data[i + 1] for i in range(len(self.data) - 1))
# 示例
processor = DataProcessor()
processor.add_data(5)
processor.insert_data(1, 3)
processor.remove_data(0)
processor.update_data(5, 7)
print(processor.search_data(3)) # 查找结果
```
阅读全文