针对多组相关数据(例如:同一时间轴下的多个位移量),根据用户给定条件进行数据筛选。
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 5 09:53:30 2019
@author: yujin.wang
"""
def ConditionRemove(data,condition):
'''
data - list, multi-layer list.
condition = string, judge condidtion.
'''
a =[]
isflag = 1
string ="if "+ condition +":\n"
string +=" for k in range(len(data)):\n \
data[k].pop(i+1)\n \
isflag = 1\n"
while isflag == 1:
a.extend(data)
print data
len0 = len(a[0])
try:
for i in range(len(a[0])):
exec(string)
except:
if len(data[0]) == len0:
break
return data
if __name__ == '__main__':
a =[[1,8,6,5,2,6],[1,4,3,6,5,7],[1,2,8,6,5,7]]
print a
condition = "(a[0][i]>=a[0][i+1])"
a1 = ConditionRemove(a,condition)
print a1
输入 a =[[1,8,6,5,2,6],[1,4,3,6,5,7],[1,2,8,6,5,7]] 和 condition = "(a[0][i]>=a[0][i+1])"
输出 a1=[[1, 8], [1, 4], [1, 2]]