Python 对于列表中的

Python 对于列表中的,python,Python,简言之,我正在尝试做类似的事情 house = ['yes', 'no','maybe'] x = range(3) for x in house print[x] 我想在列表上循环,但我得到了“类型错误:列表索引必须是整数而不是标记”。我如何才能实现这一点?您想要的更像这样: house = ['yes', 'no', 'maybe'] for x in range(3): print house[x] 想想简单的英语: for item in house: pri

简言之,我正在尝试做类似的事情

house = ['yes', 'no','maybe']

x = range(3)

for x in house
  print[x]

我想在列表上循环,但我得到了“类型错误:列表索引必须是整数而不是标记”。我如何才能实现这一点?

您想要的更像这样:

house = ['yes', 'no', 'maybe']
for x in range(3):
    print house[x]

想想简单的英语:

for item in house:
    print item

这是python的强大功能之一。

如果要在列表上迭代,则根本不需要索引:

for x in house:
  print x # prints every house
如果需要索引,可以使用不同的方法:

# generate indexes on the fly
for i, a_house in enumerate(house):
  print i, a_house # prints 0 yes, 1 no, 2 maybe

# access by index
# you may change boundaries or reverse order, e.g. try range(2, -1 , -1)
for i in range(3): 
  print house[i]
没有射程需要

内部物品:
print item

该代码有语法错误,一些死代码,可能不会生成您想要的输出,但它不会给出类型错误,更不用说带有如此奇怪消息的错误了。该代码在py 2.6中不会产生任何错误。它打印[“是”]。。。etc@joaquinfor循环中house后面缺少冒号将生成语法错误。@user496713,啊!谢谢我的大脑自动编写了冒号虚拟-1:它可以工作,但表明你对Python知之甚少-至少对Python中的迭代不太了解它是针对x的内部:打印x,句号。我不认为这个答案一定有否定评级,但如果继续下去,通常不足以发布正确的代码。通常,它会告诉人们为什么问题要求错误的东西,以及如何做正确的事情以达到相同的目的。Real+1:因为它展示了如何使用索引进行迭代和使用它——即使有更多惯用的(通常更好的)Python方法,如enumerate。尽管使用了这种方法,但应该是针对rangelenhouse中的x:以避免硬编码常量。@pynator注释放错位置-@皮纳托,请注意音调。不需要侮辱或辱骂。您还可以使用内部i的切片[:-1]:print i或使用反向内部i的反向内置项反向遍历列表:print i。