python - 从混合列表中解包元组值
问题描述
想象一下我有以下列表
lst = [("key1", "2"), ("key3", "4"), "somestring", 12345]
我想用它构建一个 dict(使用 dictcomp,即):
d = {key: value
for item in lst
for key, value in [item]
if isinstance(item, tuple)}
这将导致ValueError
(解包的值太多)。
何时if
评估子句(当然,这对于拆包至关重要)?
注意:我知道我可以使用filter/lambda
before 但想知道它是否可以一步完成。
解决方案
我认为这就是您正在寻找的:
>>> lst = [("key1", "2"), ("key3", "4"), "somestring", 12345]
>>> dict([i for i in lst if type(i) is tuple])
{'key1': '2', 'key3': '4'}
推荐阅读
- java - Android Fragment 中的 Volley 请求队列(getApplicationContext 可能产生 NullPointerException)
- c# - 在ckeditor dotnetnuke中上传到服务器之前更改文件名
- scala - 将数据框中的值拆分为单独的数据框列-spark scala
- python - PyMC3 示例函数
- agent-based-modeling - Repast:如何根据特定条件获取特定代理集?
- java - 如何修复“错误:无法解决:androidx”?
- canvas - 如何在 Autodesk-forge 中更改查看器的画布
- android - 无法将 credentialType='apn' 凭据用于 FCM 通知
- shell - DDD/CQRS/ES 如何在领域层建模一个shell命令?
- javascript - 从 CodeIgniter 设置 cookie 并使用 javascript 获取值