Pythonでの値の評価

JavaScriptばっかやってるとやらかしてしまいそうなのでメモ。

# None
print "true" if None else "false"             # false

# empty list
print "true" if [] else "false"               # false

# list
print "true" if [1] else "false"              # true

# empty dictionary
print "true" if {} else "false"               # false

# dictionary
print "true" if {"hoge": "foo"} else "false"  # true

# empty string
print "true" if "" else "false"               # false

# 0 string
print "true" if "0" else "false"              # true

# string
print "true" if "a" else "false"              # true

# 0 integer
print "true" if 0 else "false"                # false

# integer
print "true" if 1 else "false"                # true

[] と {} はfalsyなんだ。へーはーふーん