繁体   English   中英

如何为字符串中的每个元素提取第二个单词。 (Python)

[英]How to Extract the second word for each element in a string. (Python)

更新:所以列表中的一些字符串只有一个字长,这就是它抛出索引错误的原因。

我正在尝试提取每个元素中的第二个单词并将其保存到列表中。 运行此程序时出现IndexError: list index out of range

df_list = [isplit()[0] for i in df_list]用于提取第一个单词,但在 index=1 上运行相同的代码似乎不起作用。

    df_list = ['ACTVIVTY PLN CMD', 'ACTIVITY CUST COST', 'OPTY TWO ORG', 'ORG PLN ACTION', 'ACTIVITY', 'PLN ORG']

    df_list = [i.split()[1] 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]

或者你也可以寻找分割单词的字符(通常是空格,但也可能是其他一些字符,如制表符等)。

性能方面,第一个有第二个 for 循环,第二个有两个对每个字符串的 split() 调用,第三个必须检查字符串是否存在这些字符,因此没有测试就没有明显的赢家。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM