python - Python过滤器数组对象
问题描述
我从数据库中提取以下数据
EventTime 用户 ID 子地址
2018-05-04 16:47:56.000 113 1
2018-05-04 16:48:45.000 113 2
2018-05-04 16:49:17.000 113 1
2018-05-04 16:49:27.000 113 2
2018- 05-04 16:49:48.000 113 1
2018-05-04 16:49:57.000 113 2
2018-05-04 16:50:15.000 113 1
2018-05-04 16:51:01.000 113 2
2018-05- 04 16:51:23.000 113 1
2018-05-04 16:51:33.000 113 2
2018-05-07 15:42:13.000 114 1
2018-05-07 15:42:16.000 114 1
2018-05-07 15 :42:26.000 114 1
2018-05-07 15:42:35.000 114 2
2018-05-07 15:42:43.000 114 2
2018-05-07 15:42:54.000 114 1
2018-05-07 15:43 :02.000 114 1
2018-05-07 15:43:11.000 114 2
2018-05-07 15:43:20.000 114 2
2018-05-07 15:43:35.000 114 1
2018-05-07 15:43:42.000 114 1
2018-05-07 15:43:51.000 114 2
2018-05-07 15:43:58.000 114 2
我希望它从数组中删除所有对象(或创建一个如下所示的新数组:
EventTime 用户 ID 子地址
2018-05-04 16:47:56.000 113 1
2018-05-04 16:48:45.000 113 2
2018-05-04 16:49:17.000 113 1
2018-05-04 16:49:27.000 113 2
2018- 05-04 16:49:48.000 113 1
2018-05-04 16:49:57.000 113 2
2018-05-04 16:50:15.000 113 1
2018-05-04 16:51:01.000 113 2
2018-05- 04 16:51:23.000 113 1
2018-05-04 16:51:33.000 113 2
2018-05-07 15:42:13.000 114 1
2018-05-07 15:42:35.000 114 2
2018-05-07 15 :42:54.000 114 1
2018-05-07 15:43:11.000 114 2
2018-05-07 15:43:35.000 114 1
2018-05-07 15:43:51.000 114 2
基本上我希望它在有多个对象彼此跟随时删除所有对象,其中 SubAddr 是相同的,我只希望它抓住第一个。SubAddr 始终为 1 或 2。 Subaddr 是用户触发的操作。
我不想在 SQL 中执行此操作,因为我还想在同一个数组上执行其他任务。
每行数据都放在一个对象中,并将该对象添加到数组中。我希望它在 Python3 中过滤这些数据
编辑:我的对象看起来像这样
class Events:
def __init__(self, id, EventTime, Address, SubAddr, UserId):
self.id = id
self.EventTime = EventTime
self.Address = Address
self.SubAddr = SubAddr
self.UserId = UserId
解决方案
尝试这个
inp_db_lst = ['2018-05-04 16:47:56.000 113 1','2018-05-04 16:48:45.000 113 2','2018-05-04 16:49:17.000 113 1','2018-05-04 16:49:27.000 113 2','2018-05-04 16:49:48.000 113 1','2018-05-04 16:49:57.000 113 2','2018-05-04 16:50:15.000 113 1','2018-05-04 16:51:01.000 113 2','2018-05-04 16:51:23.000 113 1','2018-05-04 16:51:33.000 113 2','2018-05-07 15:42:13.000 114 1','2018-05-07 15:42:16.000 114 1','2018-05-07 15:42:26.000 114 1','2018-05-07 15:42:35.000 114 2','2018-05-07 15:42:43.000 114 2','2018-05-07 15:42:54.000 114 1','2018-05-07 15:43:02.000 114 1','2018-05-07 15:43:11.000 114 2','2018-05-07 15:43:20.000 114 2','2018-05-07 15:43:35.000 114 1','2018-05-07 15:43:42.000 114 1','2018-05-07 15:43:51.000 114 2','2018-05-07 15:43:58.000 114 2']
new_res_lst = []
temp = ''
for val_str in inp_db_lst:
if val_str.split()[-1] != temp:
new_res_lst.append(val_str)
temp = val_str.split()[-1]
print new_res_lst
Result:['2018-05-04 16:47:56.000 113 1', '2018-05-04 16:48:45.000 113 2', '2018-05-04 16:49:17.000 113 1', '2018-05-04 16:49:27.000 113 2', '2018-05-04 16:49:48.000 113 1', '2018-05-04 16:49:57.000 113 2', '2018-05-04 16:50:15.000 113 1', '2018-05-04 16:51:01.000 113 2', '2018-05-04 16:51:23.000 113 1', '2018-05-04 16:51:33.000 113 2', '2018-05-07 15:42:13.000 114 1', '2018-05-07 15:42:35.000 114 2', '2018-05-07 15:42:54.000 114 1', '2018-05-07 15:43:11.000 114 2', '2018-05-07 15:43:35.000 114 1', '2018-05-07 15:43:51.000 114 2']
推荐阅读
- opencv - 从 CUDA FFT 获取相位图像
- c# - Render a Calendar with Timeslots and Overlapping Appointments
- azure - Cosmos DB 数据迁移
- javascript - Javascript 点击特定元素总是使用错误/其他元素 id
- ios - 无法验证 TNSMLKitCamera.framework/TNSMLKitCamera 中的位码
- android - WifiAwareManager 返回 null
- javascript - 如何检测字符串在 Javascript 中呈现后的中断位置?
- python - Google 平台上的 Composer 不适用于 Python 3
- c++ - 将 std::map::emplace 与返回 shared_ptr 的函数一起使用是否正确?
- java - Android Gradle ResolutionStrategy force 仍然会下载以前版本的 lib