因此。我正在为作业编写代码。我有一大堆数据(包含性别,职业和体重),并且(大致)被分类为学生/非学生和男性/女性。
我被要求过滤数据(已经使用带参数的函数),所以我可以得到:
但是我想到了一个疑问:我应该遍历大列表中的每个元素并检查每个元素,还是应该为每个限制创建一段代码?哪一个是最有效/ pythonic的事情?
数据安排在
等子列表中['E', '23', 'M', 'AC', 96.5, 0.69, '130.28']
其中,按顺序,它告诉学生/非学生,年龄,性别,进食前/后,体重,体重测量的预期误差和测量时间。
现在我首先进行迭代,然后使用以下代码进行检查。
def datafilter(fil=False,est=None,sex=None):
Data=[]
if not fil:
for q in dreal():
for w in q:
Data.append(w[4])
return Data
if fil:
for q in dreal():
for w in q:
if est is True and w[0]=='E':
if sex is None:
Data.append(w[4])
if w[2]==sex:
Data.append(w[4])
if est is False and w[0]!='E':
Data.append(w[4])
return Data
答案 0 :(得分:0)
您应该定义过滤器功能:
def datafilter(fil=False, est=None, sex=None):
if not fil:
filter = lambda w: True
elif est:
if sex:
filter = lambda w: w[0] == 'E' and w[2] == sex
else:
filter = lambda w: w[0] == 'E'
else:
filter = lambda w: w[0] != 'E'
return [w[4] for q in dreal() for w in q if filter(w)]