📅  最后修改于: 2023-12-03 15:13:12.258000             🧑  作者: Mango
当您在处理Python中的列表时遇到此错误时,可能会感到困惑。以下是一些解决此错误的方法。
TypeError: list indices must be integers or slices, not str
该错误通常出现在尝试使用字符串索引一个列表时。例如:
fruits = ["apple", "banana", "orange"]
print(fruits["apple"])
output:
TypeError: list indices must be integers or slices, not str
要使用列表中的值,请使用整数索引。例如:
fruits = ["apple", "banana", "orange"]
print(fruits[0])
output:
"apple"
如果您需要基于字符串索引数据,请使用一个字典来替代列表。例如:
fruits = {"apple": 1, "banana": 2, "orange": 3}
print(fruits["apple"])
output:
1
在列表中使用整数和字符串是很常见的。但是,如果您在其中添加了其他类型的元素,则可能导致索引错误。您可以通过运行以下代码以查看列表中的元素类型:
fruits = ["apple", "banana", "orange", 1, True]
for fruit in fruits:
print(type(fruit))
输出:
<class 'str'>
<class 'str'>
<class 'str'>
<class 'int'>
<class 'bool'>
只有列表中的元素都是同一类型时,您才能对其进行索引。
如果您只有字符串类型的索引,请将它们转换为整数类型。例如:
fruits = ["apple", "banana", "orange"]
fruits_dict = dict(enumerate(fruits))
print(fruits_dict["0"])
output:
"apple"
以上就是解决此问题的几个方法,希望对您有所帮助!