Python 2.7工作正常,但我想使用3.5,有没有办法做到这一点?
在为Cygwin安装软件包时,Python的"最新"版本是2.7,所以如果我在这里回答我自己的问题,请告诉我.
我试图根据我拥有的键的列表来访问字典的值。如果密钥不存在,则默认为“无”。但是,当值是空字符串”时,我遇到了麻烦。请参阅以下代码获取我的示例
dict = {}
dict['key'] = ''
test = dict.get('key')
print(test)
>>
Run Code Online (Sandbox Code Playgroud)
上面是预期的,并打印空字符串。但是现在看看如果不存在该键时我将dict.get()函数默认设置为None会发生什么
dict = {}
dict['key'] = ''
test = dict.get('key') or None
print(test)
>> None
Run Code Online (Sandbox Code Playgroud)
为什么会这样?在第二个示例中,存在密钥,因此我的直觉说“应打印”。Python如何应用该行代码的“或”子句?
以下是我用来访问字典的实际代码。请注意,字典中的许多键都以''作为值,因此是我的问题。
# build values list
params = []
for col in cols:
params.append(dict.get(col) or None)
Run Code Online (Sandbox Code Playgroud)
有人可以提供最佳解决方案吗?我当前的解决方案如下,但我认为这不是最干净的选择
# build values list
params = []
for col in cols:
if dict.get(col) is not None:
params.append(dict.get(col))
else:
params.append(None)
Run Code Online (Sandbox Code Playgroud)