如果Python没有三元条件运算符,是否可以使用其他语言结构模拟一个?
我想知道做什么更好:
d = {'a': 1, 'b': 2}
'a' in d
True
Run Code Online (Sandbox Code Playgroud)
要么:
d = {'a': 1, 'b': 2}
d.has_key('a')
True
Run Code Online (Sandbox Code Playgroud) 给定一个字典,如何确定该字典中的给定键是否已设置为非None值?
即,我想这样做:
my_dict = {}
if (my_dict[key] != None):
my_dict[key] = 1
else:
my_dict[key] += 1
Run Code Online (Sandbox Code Playgroud)
即,我想增加值,如果已经存在,或者将其设置为1.
可能重复:
测试Python字典中是否存在密钥的好方法是什么
测试字典是否包含密钥的最简洁方法是什么?
x = {'a' : 1, 'b' : 2}
if (x.contains_key('a')):
....
Run Code Online (Sandbox Code Playgroud) 在测试变量有值时,是否有理由决定使用哪一个try或哪些if结构?
例如,有一个函数返回列表或不返回值.我想在处理之前检查结果.以下哪一项更可取,为什么?
result = function();
if (result):
for r in result:
#process items
Run Code Online (Sandbox Code Playgroud)
要么
result = function();
try:
for r in result:
#process items
except TypeError:
pass;
Run Code Online (Sandbox Code Playgroud)
可能重复:
'has_key()'或'in'?
我有一个Python字典,如:
mydict = {'name':'abc','city':'xyz','country','def'}
Run Code Online (Sandbox Code Playgroud)
我想检查密钥是否在字典中.我很想知道从以下两个案例中哪个更为可取,为什么?
1> if mydict.has_key('name'):
2> if 'name' in mydict:
Run Code Online (Sandbox Code Playgroud) 如何检查密钥是否在python中的字典中定义?
a={}
...
if 'a contains key b':
a[b] = a[b]+1
else
a[b]=1
Run Code Online (Sandbox Code Playgroud) 我经常想检查对象是否有成员.一个例子是在函数中创建单例.为此,您可以这样使用hasattr:
class Foo(object):
@classmethod
def singleton(self):
if not hasattr(self, 'instance'):
self.instance = Foo()
return self.instance
Run Code Online (Sandbox Code Playgroud)
但你也可以这样做:
class Foo(object):
@classmethod
def singleton(self):
try:
return self.instance
except AttributeError:
self.instance = Foo()
return self.instance
Run Code Online (Sandbox Code Playgroud)
另一种方法更好吗?
编辑:添加了@classmethod...但请注意,问题不是关于如何制作单例,而是如何检查对象中是否存在成员.
编辑:对于该示例,典型用法是:
s = Foo.singleton()
Run Code Online (Sandbox Code Playgroud)
然后s是类型的对象,Foo每次都相同.并且,通常,该方法被多次调用.
我无法找到做我想做的事情的正确语法.如果没有名称/值对,我想做点什么.这是我视图中的代码:
if (!request.POST['number']):
# do something
Run Code Online (Sandbox Code Playgroud)
完成上述事情的正确方法是什么?我尝试这个时遇到语法错误.