Python:在if-elif-else语句中设置条件

0 投票
1 回答
524 浏览
提问于 2025-04-16 16:39

我有以下这段代码:

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时却要增加?我在lst中逐行扫描,因为lst基本上是从Python的csv读取器中读取的一行数据,所以我无法在if-else块中设置计数器的条件。

也许我把事情搞得太复杂了?请给点建议。

[编辑] - 这是实际的代码,我正在使用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文件,我是逐行扫描的。每当某一行的第一个值是'Type'时,我就把它写入另一个xls工作表,这样它就会成为顶部的一行。否则,它就继续逐行复制。但是,当这一行的第一列是空的,也就是''时,它应该跳过/忽略这一行。

1 个回答

0

这样怎么样:

for row in spamReader:
    if row[0] == '':
        continue

    if 'Type' in row[0]:
        row_count = 0
        ... start new worksheet ...

    for col in range(len(row)):
        ws.write(row_count,col,convert(row[col]),style) 

撰写回答