请问下python代码第16行,if为什么没有条件只有一个变量名啊?

不是应该if 怎么怎么样,执行一个语句,else执行一个语句吗?

def init(data):        #字典初始化
    data['first']={}
    data['middle']={}
    data['last']={}    
storage={}
init(storage)
print(storage)    #{'first': {}, 'middle': {}, 'last': {}}
def lookup(data,label,name):    #查找名字(列表名,标签,名字)
    return data[label].get(name)
def store(data,full_name):
    names=full_name.split()    #拆分full_name
    if len(names)==2:names.insert(1,'')    #如果没有中间名,则插入空字符串
    labels='first','middle','last'
    for label,name in zip(labels,names):    #使用zip函数联合标签和名字
        people=lookup(data,label,name)    
        if people:
            people.append(full_name)    #如果对应first、middle、last的键值已经存在,就把全名添加进去
        else:
            data[label][name]=[full_name]    #键不存在时,自动添加键值
MyNames={}
init(MyNames)
store(MyNames,'Robin Hood')
store(MyNames,'Robin Locksley')
print(lookup(MyNames,'first','Robin'))    #['Robin Hood', 'Robin Locksley']

一个变量名也是可以作为if条件的
如果lookup能够返回正常的值,if条件成立,如果返回None则if条件不成立

9行的get()会返回true/false
也就是说16行people的值会是true/false

你说的条件,条件执行的结果就是true/false。
下面两种写法是一样的效果,因为1>0的执行结果就是true
if true:
if 1>0: