如何在条件理解中加入条件?

时间:2016-08-04 22:00:22

标签: set list-comprehension

我有一个代码通过文件中的每一行,并将每一行拆分成单词并将第一个单词放入一个集合中。

test = set([
    line.rstrip().split()[0].strip()
    for line in codecs.open(filepath, 'r', 'utf-8')
    if len(filepath) > 0
])

我的问题是有时候这行可能是一个空字符串,并且出于某种原因

index out of range error 

发生。我该如何解决这个问题,以便我可以跳过发生错误的行并继续下一行?

1 个答案:

答案 0 :(得分:0)

我想你想要这个?

test = set([
    line.rstrip().split()[0].strip()
    for line in codecs.open(filepath, 'r', 'utf-8')
    if len(line) > 0
])

(您有filepath而不是line。)

你可能需要这个,因为空行真的是“\ n”:

if len(line.rstrip()) > 0