---
title: 列表操作
version: '简体中文'
---

文件列表变量支持同时上传文档文件、图片、音频与视频文件等多种文件。应用使用者在上传文件时，所有文件都存储在同一个 `Array[File]` 数组类型变量内，**不利于后续单独处理文件。** 列表操作节点可以在数组变量内提取单独的元素，便于后续节点处理。

> `Array`数据类型意味着该变量的实际值可能为 \[1.mp3, 2.png, 3.doc]，大语言模型（LLM）仅支持读取图片文件或文本内容等单一值作为输入变量，无法直接读取数组变量，通常需要配合列表操作节点一起使用。

### 节点功能

列表操作节点可以对文件的格式类型、文件名、大小等属性进行过滤与提取，将不同格式的文件传递给对应的处理节点，以实现对不同文件处理流的精确控制。

例如在一个应用中，允许用户同时上传文档文件和图片文件两种不同类型的文件。需要使用**列表操作节点**进行分拣，将不同的文件类型交由不同流程处理。

![分流不同的文件类型](https://assets-docs.dify.ai/dify-enterprise-mintlify/zh_CN/guides/workflow/node/522a0c932aab93d4f3970168412f759e.png)

列表操作节点一般用于提取数组变量中的信息，通过设置条件将其转化为能够被下游节点所接受的变量类型。它的结构分为**输入变量**、**过滤条件**、**排序（可选）**、**取前 N 项（可选）**、**输出变量**。

![列表操作节点](https://assets-docs.dify.ai/dify-enterprise-mintlify/zh_CN/guides/workflow/node/8c1be5a1270203aeb694872c316cd61e.png)

#### 输入变量

列表操作节点仅接受以下数据结构变量：

* Array\[string]
* Array\[number]
* Array\[file]

#### 过滤条件

处理输入变量中的数组，添加过滤条件。从数组中分拣所有满足条件的数组变量，可以理解为对变量的属性进行过滤。

举例：文件中可能包含多重维度的属性，例如文件名、文件类型、文件大小等属性。过滤条件允许设置筛选条件，选择并提取数组变量中的特定文件。

支持提取以下变量：

* type 文件类别，包含图片，文档，音频和视频类型
* size 文件大小
* name 文件名
* url 指的是应用使用者通过 URL 上传的文件，可填写完整 URL 进行筛选
* extension 文件拓展名
*   mime\_type

    [MIME 类型](https://datatracker.ietf.org/doc/html/rfc2046)是用来标识文件内容类型的标准化字符串。示例: "text/html" 表示 HTML 文档。
*   transfer\_method

    文件上传方式，分为本地上传或通过 URL 上传

#### 排序

提供对于输入变量中数组的排序能力，支持根据文件属性进行排序。

*   升序排列

    默认排序选项，按照从小到大排序。对于字母和文本，按字母表顺序排列（A - Z）
*   降序排列

    由大到小排序，对于字母和文本，按字母表倒序排列（Z - A）

该选项常用于配合输出变量中的 first\_record 及 last\_record 使用。

#### 取前 N 项

可以在 1-20 中选值，用途是为了选中数组变量的前 n 项。

#### 输出变量

满足各项过滤条件的数组元素。过滤条件、排序和限制可以单独开启。如果同时开启，则返回符合所有条件的数组元素。

* Result，过滤结果，数据类型为数组变量。若数组中仅包含 1 个文件，则输出变量仅包含 1 个数组元素；
* first\_record，筛选完的数组的首元素，即 result\[0]；
* last\_record，筛选完的数组的尾元素，即 result\[array.length-1]。

***

### 配置案例

在文件交互问答场景中，应用使用者可能会同时上传文档文件或图片文件。LLM 仅支持识别图片文件的能力，不支持读取文档文件。此时需要用到 [列表操作](list-operator) 节点预处理文件变量的数组，将不同的文件类型并发送至对应的处理节点。编排步骤如下：

1. 开启 [Features](../additional-feature) 功能，并在文件类型中勾选 "图片" + "文档文件" 类型。
2. 添加两个列表操作节点，在 "过滤" 条件中分别设置提取图片与文档变量。
3. 提取文档文件变量，传递至 "文档提取器" 节点；提取图片文件变量，传递至 "LLM" 节点。
4. 在末尾添加 "直接回复" 节点，填写 LLM 节点的输出变量。

![](https://assets-docs.dify.ai/dify-enterprise-mintlify/zh_CN/guides/workflow/node/ca60c2a982f7a9902c178e4e5503db50.png)

应用使用者同时上传文档文件和图片后，文档文件自动分流至文档提取器节点，图片文件自动分流至 LLM 节点以实现对于混合文件的共同处理。

{/*
Contributing Section
DO NOT edit this section!
It will be automatically generated by the script.
*/}

---

[编辑此页面](https://github.com/langgenius/dify-docs/edit/main/zh-hans/guides/workflow/node/list-operator.mdx) | [提交问题](https://github.com/langgenius/dify-docs/issues/new?template=docs.yml)

