从lis中的每个值中提取第一个词

2024-06-09 05:27:03 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个很长的列标题列表。都是字符串,有些是几个字长。我还没有找到一种方法来编写一个函数,该函数从列表中的每个值中提取第一个单词并返回这些单数单词的列表。在

例如,我的列表如下所示:

['Customer ID', 'Email','Topwater -https:', 'Plastics - some uml']

我希望它看起来像:

^{pr2}$

我现在有这个:

def first_word(cur_list):
    my_list = []
    for word in cur_list:
        my_list.append(word.split(' ')[:1])

当我在列表上运行它时,它返回None。在


Tags: 方法函数字符串id标题列表emailmy
3条回答

在按空格拆分字符串后,可以使用列表理解返回第一个索引的列表。在

my_list = [x.split()[0] for x in your_list]
>>> l = ['Customer ID', 'Email','Topwater -https://karls.azureedge.net/media/catalog/product/cache/1/image/627x470/9df78eab33525d08d6e5fb8d27136e95/f/g/fgh55t502_web.jpg', 'Plastics - https://www.bass.co.za/1473-thickbox_default/berkley-powerbait-10-power-worm-black-blue-fleck.jpg']
>>> list(next(zip(*map(str.split, l))))
['Customer', 'Email', 'Topwater', 'Plastics']

To address“当我在列表上运行它时,它返回None。”

您没有返回my_list。因为它创建了一个新列表,没有更改原始列表cur_list,因此my_list不会返回。在

从列表中的每个值中提取第一个单词

从@dfundako,可以将其简化为

  • my_list = [x.split()[0] for x in cur_list]

最后的代码是

def first_word(cur_list):
    my_list = [x.split()[0] for x in cur_list]
    return my_list

这是一个演示。请注意,有些标点符号可能会被留下,尤其是在名字的最后一个字母之后:

  • names = ["OMG FOO BAR", "A B C", "Python Strings", "Plastics: some uml"]
  • first_word(names)将是{}

相关问题 更多 >