如何从列表中的列表中删除项目?

时间:2019-06-26 23:31:51

标签: python string list

我有此代码,想从列表中删除“和”。

def names_to_apa(names):
    x = names.split(",")  
    nm = []
    for y in x:
        nm.append(y.split())
    print(nm)
    for i in nm:
        if i == 'and':
            nm.remove(i)
    print(nm)

print(names_to_apa("First Last, David Joyner, and George Burdell"))
#print: Last, F., Joyner, D., & Burdell, G.

当前输出为:

[['First', 'Last'], ['David', 'Joyner'], ['and', 'George', 'Burdell']]

但是我想摆脱第三个列表中的“和”。

我尝试过的方法不起作用,通过搜索StackOverflow发现的内容似乎仅适用于单个列表,或者我不知道如何在列表中的列表中实现它。

你能帮忙吗?

2 个答案:

答案 0 :(得分:1)

您需要访问子列表来执行删除操作,而不是外部操作:

data = [['First', 'Last'], ['David', 'Joyner'], ['and', 'George', 'Burdell']]

for sublist in data:
    while "and" in sublist:
        sublist.remove("and")

答案 1 :(得分:0)

尝试此操作,您可以在代码中添加一条指令,以将“和”替换为“”:

def names_to_apa(names):
    names=names.replace("and","")
    x = names.split(",")
    nm = []
    for y in x:
        nm.append(y.split())
    print(nm)
    for i in nm:
        if i == 'and':
            nm.remove(i)
    print(nm)

print(names_to_apa("First Last, David Joyner, and George Burdell"))

输出:

[['First', 'Last'], ['David', 'Joyner'], ['George', 'Burdell']]