【发布时间】:2011-08-15 10:55:26
【问题描述】:
我有以下代码sn-p:
for row in lst:
if 'Type' in row[0]:
for col in range(len(row)):
#do something
elif (not 'Type' or '') in row[0]:
for col in range(len(row)):
#do something
row_count +=1
对于elif (not 'Type' or '') 的第二部分,如果row[0] = '' 为真,我如何不增加row_count 计数器,但在满足row[0] != Type 时增加?我无法将 if-else 块中的计数器条件设置为我在 lst 中逐行扫描,这基本上是从 python 中的 csv 读取器读取的行。
也许我让自己太复杂了? 请给点建议。
[编辑] - 这是实际代码,我使用 xlwt 模块写入工作表。
for row in spamReader:
if 'Type' in row[0]:
for col in range(len(row)):
ws.write(0,col,convert(row[col]),style)
elif (not 'Type' or '') in row[0]:
for col in range(len(row)):
ws.write(row_count,col,convert(row[col]),style)
row_count +=1
更多详情: 我有这个 csv 文件,我在其中逐行扫描。无论其第一个值为“类型”的哪一行,我都将其写在另一个 xls 工作表中,以便它成为第一行。否则,它只是继续逐行复制。但是,当该行的第 1 列为空时,即 '',它假定通过/忽略它。
【问题讨论】:
-
你能把
row_count语句移到if 块中吗? -
你想什么时候增加
row_count? -
如果我将
row_count语句移动到块中,我应该在哪个缩进处对齐它?因为,一旦它增加了计数器,下一个块将在do something语句中使用它。 -
呃..
(not 'Type' or '') in row[0]应该是什么意思?除非我忽略了 Python 3.0 的一些新特性,否则(not 'Type' or '')的计算结果为''。不是吗? -
包含“类型”的行不会到达
elif,因为它们被前面的if消耗。如果row[0]是一个字符串,那么'' in row[0]总是为真,所以你的elif条件是一个重言式,elif相当于普通的else。
标签: python if-statement