python - 解压缩frozensets 列表的最佳方法是什么?
问题描述
不允许使用任何导入。
输入:
[frozenset({1}), frozenset({32}), frozenset({40}), frozenset(), frozenset({76})]
期望的输出:
[1,32,40,76]
我正在寻找一种简洁的方法。我知道如何用多行 for 循环解压它。
解决方案
您可以使用列表推导来生成输出。为了提取每个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]
推荐阅读
- javascript - How to specify this in an object literal with flow in js
- c# - Why my list only shows the last value after looping through it?
- typescript - Errors while using Immutable.Map
- react-native - 无法连接到安卓模拟器上的开发服务器
- python - How to find intersection of straight lines with Hough Peaks?
- php - Approach to sending email reminders to users - process
- logstash - logstash - output single event into multiple line output file
- java - Code design: How to ensure that DTO objects refer to the same object, avoid stackoverflow in circular references in Java?
- html - Angular version dispalyed in vendor.js
- ruby-on-rails-4 - Rails 自定义管理 gem