Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何减少python代码的数量?_Python_Dictionary_Coding Style_Refactoring - Fatal编程技术网

如何减少python代码的数量?

如何减少python代码的数量?,python,dictionary,coding-style,refactoring,Python,Dictionary,Coding Style,Refactoring,当字典中不存在元素时,如何减少代码数量?否则,将其指定给对象。 python概念的证明: class MyClass: pass key = "test python" item = MyClass() d = {} if d.get(key) is None: d[key] = item else: item = d[key] print(item) 是否可以删除if-else语句?也许可以看看使用defaultdict(从集合中)是否有帮助 我不确定你到底想做什么

当字典中不存在元素时,如何减少代码数量?否则,将其指定给对象。 python概念的证明:

class MyClass:
    pass

key = "test python"
item = MyClass()
d = {}
if d.get(key) is None:
    d[key] = item
else:
    item = d[key]
print(item)

是否可以删除if-else语句?

也许可以看看使用
defaultdict
(从集合中)是否有帮助

我不确定你到底想做什么,但我认为这是同样的行为

from collections import defaultdict

class MyClass:
    pass

key = "test python"
item = MyClass()
d = defaultdict()
d[key] = item
print(item)
不相关,我认为与上述情况无关

if not key in d:


可能会有点pythonic?

也许可以看看使用
defaultdict
(来自集合)是否有帮助

我不确定你到底想做什么,但我认为这是同样的行为

from collections import defaultdict

class MyClass:
    pass

key = "test python"
item = MyClass()
d = defaultdict()
d[key] = item
print(item)
不相关,我认为与上述情况无关

if not key in d:

可能有点像蟒蛇?

您可以使用:

key = "test python"
item = MyClass()
d = {}
print(d.setdefault(key, item))
您可以为此使用:

key = "test python"
item = MyClass()
d = {}
print(d.setdefault(key, item))
在你开始提问之前,请仔细阅读

您想使用此
设置默认值(键[,默认值])

在开始提问之前请仔细阅读


如果要使用此
setdefault(key[,default])
您可以阅读python文档->

class MyClass:
    pass

key = 'test python'
item = MyClass()
d = {}
item = d.setdefault(key, item)

它更像蟒蛇

您可以阅读python文档->

class MyClass:
    pass

key = 'test python'
item = MyClass()
d = {}
item = d.setdefault(key, item)

它更像蟒蛇

那么,当您删除
else
时,测试用例会发生什么情况?所有情况下的结果都一样吗?至少在dict中存在或不存在密钥时进行测试。是否使用
d.get(key)is None
尝试测试dict是否具有该密钥?如果是,则应
输入d
d.get(key)is None
不区分不存在的key和显式的
None
。那么,当您删除
else
时,测试用例会发生什么情况?所有情况下的结果都一样吗?至少在dict中存在或不存在密钥时进行测试。是否使用
d.get(key)is None
尝试测试dict是否具有该密钥?如果是,则应
输入d
d.get(key)为None
不区分不存在的key和显式的
None