字典的问题(TypeError:字符串索引必须是整数)



我的字典功能有问题。

den = {
'first_name': 'den',
'last_name': 'elc',
'age': '16',
'city': 'slovakia',
}
for user, user_info in den.items():
nameo = user_info['first_name']
namei = user_info['last_name']
age = user_info['age']
city = user_info['city']
print(f"tFirst name:{nameo}")
print(f"tLast_name:{namei}")
print(f"tAge:{age}")
print(f"tCity:{city}")

Python打印TypeError:

Traceback (most recent call last):
File "D:/PyCharm Community/pycharm/venv/Test.py", line 15, in <module>
nameo = user_info['first_name']
TypeError: string indices must be integers

任何想法?

在这种情况下,你不需要for循环,如果你有一个字典数组,那么你需要考虑使用for循环。在这里,你可以简单地像下面这样做。

den = {
'first_name': 'den',
'last_name': 'elc',
'age': '16',
'city': 'slovakia',
}
print(f"tFirst name:{den['first_name']}")
print(f"tLast_name:{den['last_name']}")
print(f"tAge:{den['age']}")
print(f"tCity:{den['city']}")

你可以使用.title(),这样做:

den = {
'first_name': 'den',
'last_name': 'elc',
'age': '16',
'city': 'slovakia',
}
for k,v in den.items():
print(f't{k.title()}:{v}')

输出:

First_Name:den
Last_Name:elc
Age:16
City:slovakia

这里的第一个问题是您试图从字符串本身提取字符串索引。这是因为当你迭代den.items()时,你是在迭代它的键和值,分别是user和user_info。

因此对于循环的每次迭代-:用户=键User_info = val

现在如果你注意到你正在使用的字典有字符串形式的值。例如,如果你有一个字符串,说'hi'。然后这个字符串有两个索引,只能用整数0,1或-1,-2表示。但如果我们这样做呢?

a = 'hi'
print(a['first_name'])

这里会抛出一个错误,因为你可能在这里看到的字符串的索引不能是字符串。

另一个问题是,从你的代码中,你似乎需要循环多个这样的用户的信息,但这里你是在一个单一的用户。要为多个用户定义它,需要定义一个更大的字典,将这些用户信息字典作为子字典。像这样——:

users = {
{
'first_name': 'den',
'last_name': 'elc',
'age': '16',
'city': 'slovakia',
},
{
'first_name': 'den_2',
'last_name': 'elc_2',
'age': '19',
'city': 'romania',
},
}

现在你的旧代码遍历这个字典的项就可以正常工作了!

for user, user_info in users.items():
nameo = user_info['first_name']
namei = user_info['last_name']
age = user_info['age']
city = user_info['city']
print(f"tFirst name:{nameo}")
print(f"tLast_name:{namei}")
print(f"tAge:{age}")
print(f"tCity:{city}")

相关内容

  • 没有找到相关文章

最新更新