嵌套ifs在阅读csv中,是否有可能使它更快?
问题描述:
嘿我需要从第1列中获取字符串,但是如果单元钱币' - '程序从下一列(同一行)获取值并确定我做到了。工作正常,但它使得它更快,代码更短?我只是好奇,但想学东西更快地工作:)嵌套ifs在阅读csv中,是否有可能使它更快?
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
表不便:)
和输出
smth1
smth2
smth3
smth4
smth5
答
您可以通过在01上调用next
来读取该行,直到您达到非'-'
值过滤的行:
for row in reader:
val = next(x for x in row if x!='-')
print(val)
你可能的情况下,该行的所有列中添加默认是'-'
:
...
val = next((x for x in row if x!='-'), '')
有一个与所有的行没有lolumns - 一旦必须发生不便 – MTG
你能解释我简单的xD吗? – MTG
@MTG那么你没事没有第二部分 –