更新:因此列表中的一些字符串只有一个字长,这就是为什么它引发索引错误的原因。
我正在尝试提取每个元素中的第二个单词并将其保存到列表中。运行此程序时,我得到了TransactionTemplate.setTimeout()
。
IndexError: list index out of range
可以提取第一个单词,但是在index = 1上运行相同的代码似乎不起作用。
df_list = [isplit()[0] for i in df_list]
如果您的字符串只有一个单词,i.split()
将为您提供长度为1的列表,然后尝试将其置于位置1(第二项)将给您一个错误。
df_list = ['ACTVIVTY PLN CMD','ACTIVITY CUST COST','OPTY TWO ORG','ACTIVITY']
有多种检查方法,例如:
df_list = [word for words in df_list for i,word in enumerate(words.split()) if i == 1]
或者:
df_list = [words.split()[1] for words in df_list if len(words.split()) > 1]
或者yuou也可能会寻找分隔单词的字符(通常是空格,但也可能是一些其他字符,例如制表符等)。
性能方面,第一个具有第二个for循环,第二个具有针对每个字符串的对split()的两次调用,而第三个则必须检查字符串中这些字符的压力,因此如果没有测试,就没有明显的赢家