Python 从输入构建字典的最佳方式

标签 python dictionary

我正在尝试根据用户输入构建一个嵌套字典。唯一的问题是,用户可以选择不输入其中的一些输入。在这些情况下,我希望字典完全排除该字段。例如:

ids = 1234
dmas = 5678

我希望字典看起来像这样:

d = {profile:{"dma_targets":dmas, "id":ids}}

但是,如果用户决定不包含某些输入:

ids = None
dmas = 5678

我希望字典看起来像这样:

d = {profile:{"dma_targets":dmas}}

我有点卡在这里,这似乎是一件非常简单的事情,因为如果我想要一个列表而不是一个字典,它会很容易做到。我遇到的问题之一是:

x = "dma_targets":dmas 

不是一个有效的对象,所以我很难构建它的片段,然后将它们添加到字典中。非常感谢!

最佳答案

来点儿怎么样dict comprehension

fkeys = ['dma_targets', 'ids']
fvals = [5678, None]
d = {'profile': {k:v for (k,v) in zip(fkeys, fvals) if v is not None}}

产生 d

{'profile': {'dma_targets': 5678}}

关于Python 从输入构建字典的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19592292/

相关文章:

python - 使用每个人有几行的 Dataframe,创建另一个每个人只有一行的数据框并获取某个属性的模式(每个人)

java - 同时过滤和映射一个java流

python - 在 Python 中对字典列表的值进行分组和聚合

c# - 仅在 Visual Studio 的调试器中按键对字典进行排序

javascript - C 语言与较新语言中的变量名长度

python - 使用 Adwords API 将自定义受众群体添加到广告组

python库将.wav与麦克风输入进行比较?

string - 匹配两个数据集之间的公共(public)字符串

swift - 如何在 Swift 中声明类型化的字典?

python - 使用 pyinstaller 构建图像和一些配置文件,如 txt 和 xml 文件