【发布时间】:2012-05-31 03:49:14
【问题描述】:
在 Python 中,我有一个列表,如下所示:
[[1,2,3, 'L'], ['L'], [1]]
我想为每个子列表计算所有数字元素的平均值。因此应排除值“L”。上面例子的结果应该是:
[2, [], 1]
有没有什么快速的方法可以在一行中做到这一点?
谢谢。
【问题讨论】:
-
您是特别想要一行,还是尽可能短?我很确定您不能在一行中做到这一点,因为您至少需要完成 2 或 3 个不同的高级操作。
-
越短越好!我只是想有一种更聪明的方法来做这件事,而不是遍历每个子列表、检查它是否不是“L”、递增计数器和总和等。
-
为什么结果是
[2, [], 1]而不是[2, 0, 1]? -
@Zoozy:空列表的平均值是未定义的,而不是 0。我可能会使用
None或float("nan")作为未定义的值。 -
@jamylak,好吧,当然,有几个嵌套列表推导式,我想......但是男人会很难看。
标签: python list average literals mean