返回列表中的索引,直到没有索引为止

时间:2018-12-19 15:29:15

标签: python list split

我正在尝试遍历列表中不一致的字符串,并且仅返回存在的许多字符串(之间还有空格)。以下是我所拥有的字段:

119|N|Thompson|Compl.  
120|N|Thompson|InCompl.
121|W|        |         

我想要得到的预期输出是:

N Thompson Compl.
N Thompson Incompl.
W

我最初尝试了一个非常基本的功能:

def Split(field):
    x = field.split("|")
    return x[1] + " " + x[2] + " " + x[3]

但是,由于我的数据不一致并且并不总是具有索引23,因此它显然不起作用。我尝试枚举列表,但是我不确定从这里去哪里。

def Split(field):
    x = field.split("|")
    for idx, val in enumerate(x):
        #do stuff

我只想返回有很多索引(索引0始终是数字)。

1 个答案:

答案 0 :(得分:3)

您可以使用join获取任何列表的字符串:

def Split(field):
    return ' '.join(field.split("|")[1:])

如果甚至没有一个字段,则需要tryexcept

def Split(field):
    try: return ' '.join(field.split("|")[1:])
    except IndexError: return '' #Empty string if there is no index 1