def split_data_set(data_set, axis, value):
    """
    按照给定特征划分数据集，筛选某个特征为指定特征值的数据
    （然后因为是按该特征进行划分了，该特征在以后的划分中就不用再出现，所以把该特征在新的列表中移除）
    :param data_set:    待划分的数据集，格式如下，每一行是一个list，list最后一个元素就是标签，其他元素是特征
    :param axis:        划分数据集的特征(特征的序号)
    :param value:       需要返回的特征的值(筛选特征的值要等于此值)
    :return:
    >>>myDat = [[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, 'no']]
    >>>split_data_set(myDat,0,1)
    [[1, 'yes'], [1, 'yes'], [0, 'no']]
    >>>split_data_set(myDat,0,0)
    [[1, 'no'], [1, 'no']]

    """
    # 创建新的list对象
    ret_data_set = []
    for feature_vec in data_set:
        if feature_vec[axis] == value:
            # 抽取, 把指定特征从列表中去掉，组成一个新的特征+标签的列表
            reduced_feature_vec = feature_vec[:axis]
            reduced_feature_vec.extend(feature_vec[axis + 1:])
            ret_data_set.append(reduced_feature_vec)
    return ret_data_set