如何使函数按列表从索引中删除元素

时间:2019-12-09 14:14:30

标签: python list

我要删除用户提供的名称所在的整个列表

import taskk
agenda = []
count = 0
while True:
    print('---MENU---')
    print('Register- 1 / Remove - 2')
    option= int(input())
    if option== 1:
        name= input('Name:')
        wpp = int(input('Number: '))
        email = input('Digite o email: ')
        contact= [name,wpp,email]
        agenda.append(contact)
        count +=1
    if option == 2:
        name = input('Who do you want to remove? ')
        agenda.append(name)
    if count == 2:
        break

我想做这样的事情,从名称中获取索引并添加1以删除名称,wpp和电子邮件。我知道这是错误的,但是我认为我可以做类似的事情

def remove(name, agenda = []):
    for registro in agenda:
            registro1 = agenda.index(name)
            registro2 = agenda.index(name+ 1)
            registro3 = agenda.index(name + 2)
            agenda.pop(registro1, registro2, registro3)
            return agenda
    return

2 个答案:

答案 0 :(得分:0)

尝试一下:

def delete_contact(agenda, name):
    for contact in agenda[:]:
        if contact[0] == name:
           agenda.remove(contact)

,议程列表将被更新,而无需返回任何内容。

答案 1 :(得分:0)

我假设您的议程将包含一个子列表,该子列表是“ [name,wpp,email]”,那么当您要删除该列表时,您只需找到name = name_to_remove的子列表并将其删除即可。

def remove(name, agenda):
    return [elem for elem in agenda if elem[0] != name]