Skip to main content
 首页 » 编程设计

Python 从列表中删除每个字符串中的单词

2025年05月04日21shanyou

所以我有一个列表,每个元素都有一个句子形式的字符串,就像这样

a = ["This is a sentence with some words.", "And this is a sentence as well.", "Also this right here is a sentence."] 

我想用这个列表做的是只保留每个字符串的第三个和第四个单词,所以最后我想要一个像这样的列表

b = ["a sentence", "is a", "right here"] 

我想要做的第一件事是在空格后拆分列表,比如

for x in a: 
    x.split() 

但是我对如何继续有点困惑。上面的循环基本上应该为每个句子生成一个列表,其中每个单词都是一个自己的元素。我想过这样做

e = [] 
for x in a: 
    x.split() 
    a = x[0:2] 
    a = x[2:] 
    e.append(a) 

但不是删除单词,而是删除字符,我得到以下输出

['is is a sentence with some words.', 'd this is a sentence as well.', 'so this right here is a sentence.'] 

我不确定它为什么会产生这种行为。我已经坐了一段时间了,可能错过了一些非常愚蠢的事情,所以我真的很感激一些帮助。

请您参考如下方法:

没有什么可以修改字符串,它们是不可变的。您只能从中获取数据。正如其他人所说,您需要存储 .split() 的值。

列表是可变的,但切片它们也不会就地修改它们,它会创建一个新的子列表,您需要将其存储在某个地方。总的来说,这可以像这样完成:

e = [' '.join(x.split()[2:4]) for x in a] 

如果您不熟悉,整个过程就是列表推导式。 .join() 将子列表转换回字符串。