Python 错误:TypeError String Indices Must be Integers 【已解决】

举报
梦想橡皮擦 发表于 2022/03/10 00:54:19 2022/03/10
【摘要】 Python 错误:TypeError String Indices Must be Integers 【已解决】 如果你尝试使用字符串值,而不是整数值来访问字典或可迭代对象的值,那么你将收到以下错误消...

Python 错误:TypeError String Indices Must be Integers 【已解决】

如果你尝试使用字符串值,而不是整数值来访问字典或可迭代对象的值,那么你将收到以下错误消息:

TypeError: string indices must be integers

  
 

在本文中,我将向你展示为什么会收到这个错误消息以及如何修复它的示例。

Python 访问 list 中的值

在下面例子中,我们有一个 instruments 列表:

instruments = ['flute', 'trumpet', 'oboe', 'percussion', 'guitar']

  
 

如果我们想访问列表中的第3个元素,我们将使用数字索引值2:

instruments[2]

  
 

下面的代码可以正确地打印出 oboe 的结果:

instruments = ['flute', 'trumpet', 'oboe', 'percussion', 'guitar']
print(instruments[2])

  
 

Python 错误:TypeError String Indices Must be Integers 【已解决】

如果尝试访问同样的列表,但是使用了字符串索引 oboe ,那么它会导致一个错误消息:

instruments = ['flute', 'trumpet', 'oboe', 'percussion', 'guitar']
print(instruments['oboe'])

  
 

Python 错误:TypeError String Indices Must be Integers 【已解决】

如果遇到此错误消息,请再次检查,确保使用数值索引值而不是字符串值访问元素。

如何在 Python 中访问 Dictionary 中的值

让我们修改前面的示例,创建一个 instrumentsquantities 的字典。

instruments = {
    'flute': 2,
    'trumpet': 5,
    'oboe': 1,
    'percussion': 4,
    'guitar': 9
}

  
 

如果我们想打印出字典 instruments 所有的值,我们可以使用循环与 .values() 方法。

for quantity in instruments.values():
    print(quantity)

  
 

Python 错误:TypeError String Indices Must be Integers 【已解决】

如果我们移除 .values() 方法并尝试使用字符串索引访问这些值,那么我们将收到以下错误消息:

for quantity in instruments:
    print(quantity['flute'])
    print(quantity['trumpet'])
    print(quantity['oboe'])
    print(quantity['percussion'])
    print(quantity['guitar'])

  
 

Python 错误:TypeError String Indices Must be Integers 【已解决】

如果你打印出 quantity ,那么你会看到它是一个字符串。

for quantity in instruments:
    print(quantity)

  
 

Python 错误:TypeError String Indices Must be Integers 【已解决】

如果你试图写 quantity['flute'] ,那么它转换成 'flute'['flute'] ,这在 Python 中是没有意义的。

解决这个问题的方法是引用字典 instruments ,而不是使用 quantity

下面的重构代码将产生正确的结果:

instruments = {
    'flute': 2,
    'trumpet': 5,
    'oboe': 1,
    'percussion': 4,
    'guitar': 9
}

print(instruments['flute'])
print(instruments['trumpet'])
print(instruments['oboe'])
print(instruments['percussion'])
print(instruments['guitar'])

  
 

Python 错误:TypeError String Indices Must be Integers 【已解决】

我希望你喜欢这篇文章,并祝你在 Python 之旅中好运。

文章来源: dream.blog.csdn.net,作者:梦想橡皮擦,版权归原作者所有,如需转载,请联系作者。

原文链接:dream.blog.csdn.net/article/details/123370933

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。