python拆分字符串列表,其中索引超出范围

时间:2017-05-21 19:37:52

标签: python-2.7 split

如何返回列表中每个项目的第二个字母字符[如果有第二个字母字符]?如果没有第二个字母字符什么都不做。

list = [“a b”,“c d”,“e”]

for item in list:
    x = item.split()[1]

最后一个循环返回“IndexError:list index out of range”,因为没有第二个项目。

2 个答案:

答案 0 :(得分:1)

发生错误是因为项"e"被分成一个块(用0索引)另外,不要给变量保留名称为list 对于您的简单案例,您可以使用以下内容:

l = ["a b", "c d", "e"]
result = [i.split()[1] if ' ' in i else i for i in l]
print(result)

输出:

['b', 'd', 'e']

答案 1 :(得分:0)

即使它的长度为1(也就是说,它不能分割),它也会获取该项目

formatStyle(names(datCalc), fontSize = '12px')

如果项目不可分割,则忽略该项目:

x = [] #creates a list to hold the values
for item in list:
        if(len(item)) == 1:
            x.append(item)
        else:
            x.append(item.split()[1])
print(x)