删除lis中的字符串

2024-04-23 06:42:53 发布

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

我有一个嵌套列表(l1),其中包含多个句子列表(I),当split()方法应用于(I)中的第二个元素时,我想从中删除一个特定的字符串。然而,似乎只有一半被移除,其余的保留下来。你知道吗

这就是我尝试过的:

for i in l1:
    for j in i[1].split():
        if j == 'a':
            i[1].split().remove(j)

我也尝试过用空字符串替换(j),但也没用。你知道吗

示例输入:[[string1,这是一本书],[string2,他是个高个子],,,]

输出示例: 这是一本书,他是个高个子


Tags: 方法字符串in元素l1示例列表for
3条回答

你不能改变字符串,所以你的例子不起作用。 但是您可以改变列表,这样就可以将字符串拆分为空白,忽略'a'标记并将其重新连接在一起:

for i in l1:
    i[1] = ' '.join(p for p in i[1].split() if p != 'a')

这会占用原始字符串中的任何额外空格,但我假设这不是您关心的问题。你知道吗

如果我理解你的话,这应该能完成你想做的事情。你知道吗

for i in l1:
    if 'a' in i[1]:
        i[1] = i[1].replace(' a ', ' ')

以下代码:

l1 = [
    [None, "This is a dog"],
    [None, "He is a tall man"],
]

for i in l1:
    sentence = i[1]
    new_sentence = []
    for word in sentence.split():
        if word == 'a':
            continue
        new_sentence.append(word)

    i[1] = " ".join(new_sentence)

print(l1)

将导致

[
    [None, 'This is dog'], 
    [None, 'He is tall man']
]

相关问题 更多 >