Skip to main content
 首页 » 编程设计

字典中的 Python 打印元素产生错误

2025年05月04日12TianFang

我为使用循环读取的用户名创建了这段代码。

users = { 
    'aeinstein': { 
        'first':'albert', 
        'last':'einstein', 
        'location':'princeton' 
        }, 
    'mcurie': { 
        'first':'marie', 
        'last':'curie', 
        'location':'paris', 
        } 
    } 
 
for username, user_info in users.items(): 
    print("\nUsername: " + username) 
    full_name = user_info['first'], user_info['last'] 
    location = user_info['location'] 
 
    print("\tFull name:" + full_name.title()) 
    print("\tLocation:" + location.title()) 

现在,如果您在 for 循环中观察到以下行

full_name = user_info['first'], user_info['last'] 

我希望1 这会附加值 albert einstein 和 marie curie,但这会产生错误

print("\tFull name:" + full_name.title()) 
AttributeError: 'tuple' object has no attribute 'title' 

但为什么我的方法是错误的,而下面的方法是正确的...

full_name = user_info['first'] + " " + user_info['last'] 

产生如下结果

Username: aeinstein 
    Full name:Albert Einstein 
    Location:Princeton 
 
Username: mcurie 
    Full name:Marie Curie 
    Location:Paris 

1来自评论: 所以当你说 print("hello", "world") 时,这种类型的字符串连接有效对,但不是在我展示的示例中?

请您参考如下方法:

表达式 user_info['first'], user_info['last'] 创建一个包含两个元素的元组(在本例中,元素是字符串)。 Tuple 对象没有 title 方法,但是如果您像 user_info['first'] + ""+ user_info['last'] 那样用加号运算符连接,你创建一个字符串而不是一个元组,所以你可以使用标题方法