在Python中有条件地向字典添加属性

在Python中有条件地向字典添加属性,python,Python,我希望能够向字典添加属性,但前提是我传入的条件为true。例如: def addSum(num): obj = { 'name': "Home", 'url': "/", num > 0 ? 'data': num } 这可能吗?我在python中找不到这样做的方法,我只看到javascript中的示例。只需在单独的语句中添加/检查它: def addSum(num): obj =

我希望能够向字典添加属性,但前提是我传入的条件为true。例如:

def addSum(num):
    obj = {
             'name': "Home",
              'url': "/",
              num > 0 ? 'data': num
    }

这可能吗?我在python中找不到这样做的方法,我只看到javascript中的示例。

只需在单独的语句中添加/检查它:

def addSum(num):
    obj = {
        'name': "Home",
        'url': "/"
    }
    if num > 0: obj['data'] = num
    return obj

print(addSum(3))   # {'name': 'Home', 'url': '/', 'data': 3}
print(addSum(0))   # {'name': 'Home', 'url': '/'}

创建不带可选元素的字典,然后将其添加到
if
语句中

def addSum(num):
    obj = {
        'name': "Home",
        'url': "/"
    }
    if num > 0:
        obj['data'] = num;

是的,只需创建不带属性的字典,然后创建if语句以在条件为true时添加它:

def addSum(num):
    obj = {
          'name': "Home",
          'url': "/",      
    }
    if num > 0:
        obj['data'] = num

    return obj

你不能完全用那种语法。首先,您需要的是Python,而不是Java/C

(1) 添加属性,但设置为
None

obj = {'name': "Home",
       'url': "/",
       'data': num if num > 0 else None
      }
(2) 将其作为附加组件:

obj = {'name': "Home",
       'url': "/"}
if num > 0:
    obj['data'] = num

obj
是一个字典,而不是一个对象。你能添加你心目中的javascript等价物吗?你发布的内容无效。我不知道javascript中有任何类似的语法,但这很酷:)这里有很多例子,这里有一个,所以在第一个例子中,条件必须在值之后?是的。请参阅有关Python三元运算符的任何教程。第一个示例将抛出SyntaxErrorTanks;修复了缺少的引号,并使用剪切和粘贴进行了测试。