如何在python字典中有条件值?

我有一个像这样的python字典:

{
"addressLineOne": self.ADDRESS_1,
"addressType": "RESIDENTIAL",
"city": self.CITY,
"countryCode": "USA",
"email": self.EMAIL,
"firstName": self.FIRST_NAME,
"state": self.STATE
}

我希望一些值以我目前正在做的方式为条件,如下所示:

if self.login:
    data = {"addressLineOne": self.ADDRESS_1,
            "addressType": "RESIDENTIAL",
            "city": self.CITY,
            "countryCode": "USA",
            "state": self.STATE}
else:
    data = {"addressLineOne": self.ADDRESS_1,
            "addressType": "RESIDENTIAL",
            "city": self.CITY,
            "countryCode": "USA",
            "email": self.EMAIL,
            "firstName": self.FIRST_NAME,
            "state": self.STATE}

有没有更整洁的方法来做到这一点,所以我不需要两次编写字典,例如在字典中包含一个 if/else 语句?

回答

对于您的特定情况,该else部分只是添加键。因此,使用共享的字典初始化字典,并添加带有条件的附加内容。就像是:

data = {"addressLineOne": self.ADDRESS_1,
        "addressType": "RESIDENTIAL",
        "city": self.CITY,
        "countryCode": "USA",
        "state": self.STATE}

if not self.login:
    data.update({"email": self.EMAIL,
                 "firstName": self.FIRST_NAME})


回答

我偶尔会写一些类似的东西

data = {
    'this': that,
    'foo': bar,
    **({'cond1': 17, cond2: 'xyzzy'} if new_moon() else {})
}

但我会把它留给别人来决定它是否有意义......


以上是如何在python字典中有条件值?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>