我是python的新手,在理解它的工作原理时遇到了一些麻烦。
假设我有一个for循环,如下所示:
for row in rows
if row["Title"] == List[row]
do something给我的错误是list indicies must be integers。
如果我循环遍历每一行,我如何才能将当前行表示为索引?
发布于 2011-12-11 05:41:27
有一些重要的事情是你应该了解的,根据你到目前为止提供的代码样本,你可能做错了。
#Do Something下面的代码操作行,这可能会导致灾难性的后果。例如,下面的代码是一个无限循环。对于list1中的元素: list1.append(element - 5)
相反,您应该使用,这将使用切片表示法创建list1的副本以进行迭代,并且您可以修改未迭代的副本:
对于list1中的元素: list1.append(element -5)
对于element1,element2,压缩格式(list1,list2):传递
其他人告诉您使用枚举...在不实际查看代码的情况下,这确实回答了您的问题,但它只是一种糖和一个常见的Python惯用法。下面是它的工作原理。
help(enumerate)
Help on class enumerate in module __builtin__:
class enumerate(object)
| enumerate(iterable[, start]) -> iterator for index, value of iterable
|
| Return an enumerate object. iterable must be another object that supports
| iteration. The enumerate object yields pairs containing a count (from
| start, which defaults to zero) and a value yielded by the iterable argument.
| enumerate is useful for obtaining an indexed list:
| (0, seq[0]), (1, seq[1]), (2, seq[2]), ...我相信你可以想象其他方法来实现同样的目标。
上面第二点的例子。
In [71]: list1
Out[71]: [1, 2, 3, 4, 5, -4, -3, -2, -1, 0]
In [72]: x = 5
In [73]: for x in list1:
...: pass
In [74]: x
Out[74]: 0发布于 2011-12-11 05:01:31
for i, row in enumerate(rows):
# do something发布于 2011-12-11 05:01:40
你可以enumerate()它:
for index, row in enumerate(rows):
if row['Title'] == List[index]:
# Do somethinghttps://stackoverflow.com/questions/8459824
复制相似问题