Python 在读取csv时嵌套ifs,是否有可能使其更快?

Python 在读取csv时嵌套ifs,是否有可能使其更快?,python,python-3.x,csv,nested,Python,Python 3.x,Csv,Nested,嘿,我需要从第1列中获取字符串,但若单元格同时包含“-”,那个么程序将从下一列(同一行)中获取值,我就这样做了。工作很好,但它是wau使它更快和更短的代码?我只是好奇,但想学点东西更快地工作:) 和sample.csv col1 col2 col3 col4 0 smth1 smth smth smth 1 smth2 - smth smth 2 - smth3 smth smth 3 smth4 smth smth smth 4 -

嘿,我需要从第1列中获取字符串,但若单元格同时包含“-”,那个么程序将从下一列(同一行)中获取值,我就这样做了。工作很好,但它是wau使它更快和更短的代码?我只是好奇,但想学点东西更快地工作:)

和sample.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

您可以通过调用已筛选行的一个属性来读取该行,直到达到not
'-'
值:

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所有行都有-,一次必须出现smthu你能解释一下吗xD?@MTG那么没有第二行你就没事了part@MTG我添加了答案的链接,您可以在其中阅读有关
next
和生成器表达式的内容。
...
val = next((x for x in row if x!='-'), '')