python - 如何在一行for循环中跳过没有值的键

标签 python python-3.x

我想在我的代码中节省一些空间,所以我写了这个简单的单行 for 循环。从字典 k:[v,v] 我正在创建字典,其中第一个值是键,第二个值保持值。现在我的字典出现异常,原始字典只有一个值,即第一个值。

glyphs_dict = {'dotaccent': [103, 86], 'ring': [104], 'caron': [105, 85]}
id_dict = {k:v for k,v in list(glyphs_dict.values())}

我试过做类似的事情

id_dict = {k:v for k,v in list(glyphs_dict.values()) if k and v}

但不起作用。如何跳过列表中只有一个值的键?

最佳答案

你可以试试这个:

id_dict = {v[0]:v[1] for v in glyphs_dict.values() if len(v) == 2}

如果长度为 2(对于 keyvalue),这将获取字典的所有值作为新的键和值

关于python - 如何在一行for循环中跳过没有值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55413453/

相关文章:

python - 遍历Python中的列表列表

python-3.x - ValueError : Expected 2D array, 得到了标量数组

python - 导入会使 Django 减慢多少?

python - 如何在 python 中录制不确定持续时间的音频并允许暂停和恢复功能?

python - 在不复制列的情况下合并 Python 中的 DataFrame

Python 3 打印utf-8 编码字符串问题

python - 读取外部 Excel 文件后,我的 Pandas 数据框列中的值不准确

python - 如何将这种在二叉树中的两个级别之间查找节点的递归实现转换为迭代版本?

python-3.x - 如何从h2标签获取HREF? Python/ Selenium

python - 如何使用 web3.py 获取给定 ETH 地址的特定代币余额