Python 用于if比较
我是python新手,在理解它应该如何工作时遇到了一些困难 假设我有这样一个for循环:Python 用于if比较,python,iteration,Python,Iteration,我是python新手,在理解它应该如何工作时遇到了一些困难 假设我有这样一个for循环: for row in rows if row["Title"] == List[row] do something 给我一个错误,列表标记必须是整数 如果我在每一行中循环,如何将当前行表示为索引 使用内置函数枚举 for i, row in enumerate(rows): 使用内置函数枚举 for i, row in enumerate(rows): 您可以枚举()它:
for row in rows
if row["Title"] == List[row]
do something
给我一个错误,列表标记必须是整数
如果我在每一行中循环,如何将当前行表示为索引 使用内置函数枚举
for i, row in enumerate(rows):
使用内置函数枚举
for i, row in enumerate(rows):
您可以枚举()
它:
for index, row in enumerate(rows):
if row['Title'] == List[index]:
# Do something
您可以枚举()
它:
for index, row in enumerate(rows):
if row['Title'] == List[index]:
# Do something
有一些重要的事情你应该理解,根据你目前提供的代码示例,你可能做错了
您正在尝试使用行中的元素作为索引。如果你预料到的话
要成为一个整数,您可能需要转换它(即,如果它是一个字符串)
比如“1”)
除了第1点之外,您还为两种不同的事情使用了两次row。另一个看起来像是一本字典。您可能正在更高范围内覆盖另一个行变量。请参阅底部的示例,因为我在要点中似乎无法很好地格式化
如果下面的代码#Do Something
操纵行,这可能会导致灾难性的后果。例如,下面的代码是一个无限循环
对于列表1中的元素:
列表1.append(元素-5)
相反,您应该使用,它使用切片表示法为迭代生成list1的副本,并且您可以修改未迭代的副本:
对于列表1[:]中的元素:
列表1.append(元素-5)
您正在基于索引访问不同的列表,而不是对其进行迭代。你可以很容易地得到一个索引器做这件事。如果您想迭代两个列表,可以这样做,或者使用等效的方法。这样您是安全的,但您确实需要确保列表的长度相同
对于元素1、元素2,在zip中(列表1、列表2):
通过
其他人告诉你使用枚举。。。不看你的代码,这确实回答了你的问题,但它只是一个普通的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
有一些重要的事情你应该理解,根据你目前提供的代码示例,你可能做错了
您正在尝试使用行中的元素作为索引。如果你预料到的话
要成为一个整数,您可能需要转换它(即,如果它是一个字符串)
比如“1”)
除了第1点之外,您还为两种不同的事情使用了两次row。另一个看起来像是一本字典。您可能正在更高范围内覆盖另一个行变量。请参阅底部的示例,因为我在要点中似乎无法很好地格式化
如果下面的代码#Do Something
操纵行,这可能会导致灾难性的后果。例如,下面的代码是一个无限循环
对于列表1中的元素:
列表1.append(元素-5)
相反,您应该使用,它使用切片表示法为迭代生成list1的副本,并且您可以修改未迭代的副本:
对于列表1[:]中的元素:
列表1.append(元素-5)
您正在基于索引访问不同的列表,而不是对其进行迭代。你可以很容易地得到一个索引器做这件事。如果您想迭代两个列表,可以这样做,或者使用等效的方法。这样您是安全的,但您确实需要确保列表的长度相同
对于元素1、元素2,在zip中(列表1、列表2):
通过
其他人告诉你使用枚举。。。不看你的代码,这确实回答了你的问题,但它只是一个普通的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
行是如何构造的?行是如何构造的?@Dave你很受欢迎,补充了另一个我在那些深夜眼睛紧张的例子中错过的问题:)。享受吧@“戴夫,不客气,”他补充道,“我在那些深夜眼睛紧闭的例子中错过了另一个妙招:)。享受