首页 > 解决方案 > 解压缩frozensets 列表的最佳方法是什么?

问题描述

不允许使用任何导入。

输入:

[frozenset({1}), frozenset({32}), frozenset({40}), frozenset(), frozenset({76})]

期望的输出:

[1,32,40,76]

我正在寻找一种简洁的方法。我知道如何用多行 for 循环解压它。

标签: pythonpython-3.x

解决方案


您可以使用列表推导来生成输出。为了提取每个frozenset中的值,您可以在其上创建一个迭代器,并使用next()迭代器的方法来获取第一个唯一值,如果它不为空:

lst =  [frozenset({1}), frozenset({32}), frozenset({40}), frozenset(), frozenset({76})]

out = [next(iter(fset)) for fset in lst if fset]

print(out)
# [1, 32, 40, 76]

推荐阅读