如何从 Dart 中的列表中删除空列表?

Posted

技术标签:

【中文标题】如何从 Dart 中的列表中删除空列表?【英文标题】:How to remove empty lists from a list in Dart? 【发布时间】:2021-07-11 07:53:14 【问题描述】:

我的 Dart 程序有问题。以下是表情符号列表:

[[????, ????, ????], [], [????, ????, ????], [], [], []] //List

列表内有多个列表(如您所见)。我想删除空列表[]。我还想将 [????, ??????, ??????, ????, ????, ????] 加入到一个列表中。

【问题讨论】:

检查 List.whereList.fold / List.reduce 方法 - 更多:Iterable collections 不工作。你能解释清楚吗 List<List> l = [[1,2,3], [], [4,5], [], [6]]; var merged = l.reduce((a, b) => a + b); print(merged); var flattened = [for (var sublist in list) ...sublist]; 【参考方案1】:

完整解决方案

var data = [['?', '?', '?'], [], ['?', '?', '?'], [], [], []];

void main() 
  var newData = data.expand((x) => x).toList();
  print(newData);

这里,newData 是您的最终答案:[?, ?, ?, ?, ?, ?]

【讨论】:

这帮助很大,但你能解释一下 Yatinj 为什么在这个列表中使用“x” 这里,x 指的是您的data 列表中的单个元素。你可以看到here。 比如,我们有循环中的“i”? 你不能说i,因为i基本上是指循环中的一个索引。这里x 显示了单个元素。对于您给定的情况,在第一次迭代中,x 的值将是 ['?', '?', '?'],在第二次迭代中,x 的值将是 [],第三次 ['?', '?', '?'] 等等。跨度> 【参考方案2】:

你可以在一行中做到这一点:

yourData.expand((x) => x).toList();

【讨论】:

爱你,非常感谢,这对我帮助很大

以上是关于如何从 Dart 中的列表中删除空列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何从列表 Dart 中删除重复项 |扑

Dart // Flutter:如何根据条目的内容从列表中删除项目

如何在 dart 的地图中使用和存储列表?

dart - 如何从Dart中的列表中找到最小值和最大值

如何从Dart中的列表中找到最小值和最大值?

如何从列类型列表中删除 pandas DataFrame 中的空值