所以我有一个列表,每个元素都有一个句子形式的字符串,就像这样
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() 将子列表转换回字符串。
