如何遍历列表并将性别为male的行追加至ID_MALE列表?
解决方案:筛选包含male的数据行到新列表
首先需要说明:你提到的ID_DATA实际是列表的列表(并非字典),以下是几种实用的实现方法:
方法1:基础循环遍历(直观易懂)
# 定义原始数据列表 ID_DATA = [ [0, "John", "male", "$2400"], [1, "mary", "female", "$2700"], [2, "janie", "female", "$6790"], [3, "adex", "male", "$3300"], [4, "julie", "female", "$5400"] ] # 初始化存储男性数据的空列表 ID_MALE = [] # 遍历每一行数据,筛选出包含"male"的行并追加 for row in ID_DATA: if "male" in row: ID_MALE.append(row) # 查看结果 print(ID_MALE)
方法2:列表推导式(简洁高效)
如果追求代码简洁,可以用Python的列表推导式一行完成筛选:
ID_DATA = [ [0, "John", "male", "$2400"], [1, "mary", "female", "$2700"], [2, "janie", "female", "$6790"], [3, "adex", "male", "$3300"], [4, "julie", "female", "$5400"] ] # 直接生成筛选后的列表 ID_MALE = [row for row in ID_DATA if "male" in row] print(ID_MALE)
进阶优化:精准定位性别字段
如果确定性别字段固定在每行的第三个位置(Python索引为2,从0开始计数),可以直接判断该位置的值,避免行中其他字段意外包含"male"的情况:
# 循环版本 ID_MALE = [] for row in ID_DATA: if row[2] == "male": ID_MALE.append(row) # 列表推导式版本 ID_MALE = [row for row in ID_DATA if row[2] == "male"]
内容的提问来源于stack exchange,提问作者Lord SC11
相关产品推荐
相关产品推荐

