if else语句在python中的字典

时间:2017-02-25 08:37:26

标签: python dictionary

我试图了解以下内容无效的原因:

我有一本字典;

ex = {'CA':'San Francisco', 'NV':'Las Vegas'}

我尝试使用if else语句来获取'yes'

>>> if ex['CA'] is 'San Francisco':
...     print 'yes'
... else:
...     print 'no'
... 
no

>>> 
>>> 
>>> if ex['CA'] == 'San Francisco' is True:
...     print 'yes'
... else:
...     print 'no'
... 
no

>>> if ex['CA'] == 'San Francisco' is True:
...     print 'yes'
... 
>>> 

在这里,我没有得到'yes'

我想了解为什么我没有'yes'

>>> ex['CA'] == 'San Francisco'
True

>>> ex['CA']
'San Francisco'

如果我想使用字典键的条件语句等于某个值,会有什么其他方法?

1 个答案:

答案 0 :(得分:3)

您正在将ex['CA']'San Francisco'进行比较(这是正常的),之后您将'San Francisco'True进行比较,但总是失败:结果始终为false(编辑的正确性:根本原因描述错误,但修复方法相同)

所以代码没有按照你的想法去做。

该工作:

if (ex['CA'] == 'San Francisco') is True:

但是pythonic方式仍然存在:

if ex['CA'] == 'San Francisco':

is True有效,但我想将其保留为非常特殊的用途,当您要区分非{0}的非零值(或12)时1

其他用法使其变得多余。

顺便说一句,我不能让你写True并侥幸逃脱。您 使用if ex['CA'] is 'San Francisco':==是一个单例,因此True有效,但字符串无法保证,它依赖于实现。有关详细信息,请参阅Python string interning