python - 如何在 Python 中以简洁的方式将字典中的某些值转换为列表?

标签 python list dictionary iteration

我的代码如下,只是想知道有没有更好的方法用Python实现。

d[k] 是一个 dictitem 是一个 list

if d[k].has_key('v1'):
    item.append(d[k]['v1'])
else:
    item.append('')
if d[k].has_key('v2'):
    item.append(d[k]['v2'])
else:
    item.append('')
if d[k].has_key('e'):
    item.append(d[k]['e'])
else:
    item.append('')
if d[k].has_key('x'):
    item.append(d[k]['x'])
else:
    item.append('')

最佳答案

使用dict.get()如果键不存在则返回默认值:

item.append(d[k].get('v1', ''))

此处,d[k].get('v1', '') 返回与 'v1' 关联的值(如果存在于字典中),否则它'将返回 ''

将此与循环和 list.extend() 结合起来,您可以将所有这些键添加到一行列表中:

item.extend(d[k].get(key, '') for key in ('v1', 'v2', 'e', 'x'))

关于python - 如何在 Python 中以简洁的方式将字典中的某些值转换为列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20101379/

相关文章:

javascript - 从文档/对象中删除特定的键值对

python - 访问 Python egg 中的配置文件时出现问题

java - 动态数组和列表

python - Python 字母出现次数列表

python - 列表基于 Python 中的值重新分组

java - 是否可以在 java 中修改列表的所有元素?

c# 如何检查 QueryString Values 计数是否与键计数具有相同的值

python - 动态创建 lambda 函数列表,其中每个下一个函数都使用前一个函数

Python URL 命令导出到 .xlsx 文件

python - start_command()缺少1个位置参数?