嘿,我需要从第1列获取字符串,但如果单元格中的话,那就是' - '程序从下一列(同一行)获取值,好吧我做到了。工作得很好,但它是否可以让它更快,代码更短?我只是很好奇,但想要更快地学习一些东西:)
import csv
file = 'others.csv'
reader = csv.reader(open(file, 'r', newline=''), delimiter=';')
for row in reader:
if row[0] != '-': #1
print(row[0])
elif row[0] == '-':
if row[1] != '-':
print(row[1]) #2 nesting here
elif row[1] == '-':
print(row[3]) #3 nesting here
...
...
...
示例.csv
col1 col2 col3 col4
0 smth1 smth smth smth
1 smth2 - smth smth
2 - smth3 smth smth
3 smth4 smth smth smth
4 - - - smth5
表格smth:)
,输出
smth1
smth2
smth3
smth4
smth5
答案 0 :(得分:1)
您可以通过在已过滤的行的next
上调用generator expression来读取该行,直到您达到非'-'
值:
for row in reader:
val = next(x for x in row if x!='-')
print(val)
如果行中的所有列都是'-'
:
...
val = next((x for x in row if x!='-'), '')