Java,Python-如何将Java FlatMap转换为Python链接列表

Java,Python-如何将Java FlatMap转换为Python链接列表,java,python-2.7,linked-list,code-conversion,flatmap,Java,Python 2.7,Linked List,Code Conversion,Flatmap,我正在通过线性规划研究运输问题的公式。我主要是在网上搜索,找到了一个。但是,我必须用Python编写全部内容。我正在把它转换成Python。我不认为自己擅长Java,不认为自己擅长Python。我试着转换一下。一切都很好,但我不知道如何转换下面的代码段,它涉及Java的LinkedList和流函数 static LinkedList<Shipment> matrixToList() { return stream(matrix) .flatMap(ro

我正在通过线性规划研究运输问题的公式。我主要是在网上搜索,找到了一个。但是,我必须用Python编写全部内容。我正在把它转换成Python。我不认为自己擅长Java,不认为自己擅长Python。我试着转换一下。一切都很好,但我不知道如何转换下面的代码段,它涉及Java的LinkedList和流函数

static LinkedList<Shipment> matrixToList() {
    return stream(matrix)
            .flatMap(row -> stream(row))
            .filter(s -> s != null)
            .collect(toCollection(LinkedList::new));
}

我们可以把它分成几个步骤。您从一个
矩阵
变量开始,该变量是一个包含类型为
shipping
的iterable的iterable

流化对象意味着对流的每个元素执行操作

流上的
映射
意味着您获取每个对象,比如类型
A
,并将其转换为某种类型
B
flatMap
是当
map
将生成
流时使用的一种特殊情况
flatMap
允许您将这些流连接到单个流中

假设每个
A
映射到3个对象的流
{A1,A2}->{{B11,B12,B13},{B21,B22,B23}

flatMap
将使这一个流
{A1,A2}->{B11,B12,B13,B21,B22,B23}

在这种情况下,
矩阵
生成一个
对象流。每个
都映射到一个
装运
流中,
flatMap
用于连接它们

最后,
filter
用于删除空装运(即值为null),并调用
collect
方法将
装运流
转换为
列表

在没有流的情况下重新创建此文件可能会像下面这样:

static LinkedList<Shipment> matrixToList() {
    LinkedList<Shipment> result = new LinkedList<>();
    for (List<Shipment> row : matrix) {
        for (Shipment shipment : row) {
            if (shipment != null) {
                result.add(shipment );
            }
        }
    }
    return result;
}
静态链接列表matrixToList(){
LinkedList结果=新建LinkedList();
对于(列表行:矩阵){
对于(装运:世界其他地区){
如果(装运!=空){
结果。添加(装运);
}
}
}
返回结果;
}
static LinkedList<Shipment> matrixToList() {
    LinkedList<Shipment> result = new LinkedList<>();
    for (List<Shipment> row : matrix) {
        for (Shipment shipment : row) {
            if (shipment != null) {
                result.add(shipment );
            }
        }
    }
    return result;
}