Python遍历字典报TypeError: str只能拼接str而非tuple的原因求解
报错根本原因说明
你的判断完全正确,该报错的核心逻辑如下:
- Python字典的
items()方法返回的是由*(键, 值)二元组*组成的可迭代对象,针对你给出的webuser字典,webuser.items()返回的遍历元素依次是("username", "JWick")、("first", "John")、("last", "Wick"),每个元素的类型都是tuple。 - 错误写法中你用单个变量
key接收遍历结果,此时key是完整的元组,执行"\nKey: " + key时,Python会尝试把字符串类型和元组类型做拼接,而语法只支持字符串和字符串拼接,因此抛出Type error: can only concatenate str (not "tuple") to str的报错。 - 正确写法中使用
key, value两个变量遍历,本质是自动对每个二元组做了序列解包:将元组的第一个元素(键,字符串类型)赋值给key,第二个元素(值,字符串类型)赋值给value,两个变量都为字符串类型,和其他字符串拼接时不会触发类型错误。
如果你不想用解包写法,也可以通过索引取元组内的元素实现相同效果:
for item in webuser.items(): print("\nKey: " + item[0]) print("value: " + item[1])
内容的提问来源于stack exchange,提问作者Rahman
相关产品推荐
相关产品推荐

