我是Python的新手。我正在编写一段非常简单的代码,以便使用带有.format()
的“for”循环打印列表的内容,我希望输出如下,但出现以下错误:
names = ['David', 'Peter', 'Michael', 'John', 'Bob']
for i in names:
print("{}.{}".format(i, names[i]))
print("{}.{}".format(i,breakfastMenu[i]))
TypeError: list indices must be integers or slices, not str
我想要的预期输出: 一。大卫 2。彼得 三。迈克尔 四。约翰 5个。鲍勃
有人能帮我弄到那个输出吗?
Python列表索引引用不能是字符串。使用整数而不是索引本身(字符串)通过for循环遍历列表将解决此问题。 这是一个错误消息在诊断问题时非常有用的示例。
names
是str
的list
,因此,当您对它进行迭代时,将得到str
值。为了随机访问
list
上的元素,需要指定它们的index
,它需要是int
。如果要在迭代元素时获取元素的对应索引,可以使用Python的^{} :
注意,实际上不需要通过
names[index]
访问名称,因为在迭代时已经获得了元素。因此,上述情况类似于以下情况:哪些输出:
Python的for…in语句类似于其他语言中的foreach。您希望
enumerate
获取索引。如果要将它们全部打印在一行上,请使用
end
kwarg。相关问题 更多 >
编程相关推荐