Sha*_*ana 2 python list python-zip
我有一个包含元素列表的列表(每个内部列表中的元素数量不相同),我想将同一索引中的所有元素分组到单独的组中并返回每个组中的最大值:例如,
elements = [[89, 213, 317], [106, 191, 314], [87]]
Run Code Online (Sandbox Code Playgroud)
我想像这样对这些元素进行分组,
groups = [[89,106,87],[213,191],[317,314]]
Run Code Online (Sandbox Code Playgroud)
预期结果是组中每个列表的最大值:106,213 和 317
我尝试使用以下代码对元素进行分组:
w = zip(*elements)
result_list = list(w)
print(result_list)
Run Code Online (Sandbox Code Playgroud)
我得到的输出是
[(89, 106, 87)]
Run Code Online (Sandbox Code Playgroud)
你可以用itertools.zip_longest与fillvalue=float("-inf"):
from itertools import zip_longest
elements = [[89, 213, 317], [106, 191, 314], [87]]
out = [max(t) for t in zip_longest(*elements, fillvalue=float("-inf"))]
print(out)
Run Code Online (Sandbox Code Playgroud)
印刷:
[106, 213, 317]
Run Code Online (Sandbox Code Playgroud)
注意:zip()在这里不起作用,因为(如您所说)每个内部列表中的元素数量不同。与zip_longest()缺少的元素被取代fillvalue,在这种情况下-infinity(并且-infinity将总是在最低值max()函数)
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |