python - 如果比较

标签 python iteration

我是 python 的新手,我在理解它应该如何工作时遇到了一些麻烦。

假设我有一个这样的 for 循环:

for row in rows
    if row["Title"] == List[row] 
         do something

给我的错误是 list indicies must be integers

如果我循环遍历每一行,如何将我所在的当前行表示为索引?

最佳答案

应该了解一些重要的事情,根据您目前提供的代码示例,您可能做错了。

  1. 您正在尝试使用行中的元素作为索引。如果你期望这个 要成为一个整数,您可能需要将其转换(即,如果它是一个字符串 像“1”)。

  2. 除了第 1 点之外,您还两次使用行来处理两件不同的事情。另一个看起来像你期望它是一本字典。您可能会在更高范围内覆盖另一个行变量。请参阅底部的示例,因为我似乎无法在要点中很好地格式化...

  3. 如果 #Do Something 下面的代码操作行,这可能会导致灾难性的后果。例如,下面的代码是一个无限循环。

    对于 list1 中的元素: list1.append(元素 - 5)

    相反,您应该使用,它使用切片表示法制作 list1 的副本进行迭代,您可以修改未迭代的副本。:

    对于 list1[:] 中的元素: list1.append(元素 - 5)

  4. 您正在访问基于索引的不同列表,而不是对其进行迭代。你可以很容易地得到一个 IndexError 这样做。如果您想遍历两个列表,请这样做或使用 itertools相等的。这样您就安全了,但您确实需要确保列表的长度相同

    对于 element1, element2, in zip(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]), ...

我相信您可以想出其他方法来实现同样的目标。

上述第 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

关于python - 如果比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8459824/

相关文章:

带有/父 ID 的 PHP 多维数组到类别分类数组,Ebay 样式

php - 数组比较与 SQL 连接

python - 支持思科路由器,使用 NAPALM,使用 SSH 远程登录

python - 如何使用 python 和 boto3 读取不是我自己的存储桶?

python - Spark SQL 是否对过滤后的等值连接进行谓词下推?

javascript - 有没有一种遍历 Javascript 对象的所有子属性的好方法?

for-loop - 在 for 循环中修改计数器

python - 将文本文件中的 IP 转换为主机名

python - 使用opencv dnn readNetFromModelOptimizer时发生错误(预期: 'inputShapeLimitation.size() == blobShape.size()')

iterator - 有条件地从 flat_map 返回空迭代器