我应该先检查并制定相应的计划,还是应该检查每个数据?

2024-03-29 11:37:32 发布

您现在位置:Python中文网/ 问答频道 /正文

所以。我正在为一项任务写代码。我有一大组数据(包括性别、职业和体重),大致分为学生/非学生和男性/女性

我被要求过滤数据(已经过滤了,使用带有参数的函数),这样我就可以得到:

  • 一份非常重要的清单
  • 列出每个学生的体重
  • 每个男性学生体重的清单
  • 每个女学生体重的清单
  • 列出每个非学生的体重

但是我的脑海中出现了一个疑问:我应该遍历大列表中的每个元素并检查每个元素,还是应该为每个限制创建一段代码?哪一个是最有效的/最适合做的事情

数据按子列表排列,如

['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

Tags: 数据代码innonefordataifis
1条回答
网友
1楼 · 发布于 2024-03-29 11:37:32

您应该定义过滤函数:

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)]

相关问题 更多 >