Skip to main content
 首页 » 编程设计

python之使用未知词典

2025年05月04日9emanlee

我有一个字典,里面可能包含不同的内容,例如:

{"name": "Dmitry", "surname": "Pak"} 
{"full_name": "John Smith"} 
{"name": "Joe", "last_name": "Smith"} 

我需要打印用户的全名。我看到以下解决方案:

try: 
    print dic["full_name"] 
except: 
    try: 
        print dic["name"]+" "+dic["surname"] 
    except: 
        print dic["name"]+" "+dic["last_name"] 

构建类似树的 try 是一种很好的编码风格吗……除了意大利面条?:)

UPD1(@strcat)

print dic.get("full_name",dic.get("name", "DefaultName")+" "+dic.get("last_name",dic.get("surname", "DefaulSurname"))) 

请您参考如下方法:

您可以使用 in 关键字来检查字典中是否存在键:

if "full_name" in dic: 
     ... do something 

使用它,您的代码可能如下所示:

if "full_name" in dic: 
    print dic["full_name"] 
elif "surname" in dic: 
    print dic["name"]+" "+dic["surname"] 
else: 
    print dic["name"]+" "+dic["last_name"] 

当然你也可以把它做成一个衬里:

print dic["full_name"] if "full_name" in dic \ 
 else (dic["name"] + " " + (dic["surname"] if "surname" in dic else dic["last_name"]))