【问题标题】:How to edit and delete keys and values in python dictHow to edit and delete keys and values in python dict
【发布时间】:2022-12-02 03:22:26
【问题描述】:

i have a little problem that needs solving, i have to write a program that saves contacts in a dict and be able to 1- add new contacts 2- delete contacts 3- edit contacts 4- list contacts 5- show contacts

i wrote a simple program that saves contacts into a dictionary but i have a problem with the rest and i could really user some help!!

here is my code:

contacts = {"Mohamed": {"name": "Mohamed Sayed", "number": "017624857447", "birthday": "24.11.1996", "address": "Ginnheim 60487"},
            "Ahmed": {"name": "Ahmed Sayed", "number": "0123456789", "birthday": "06.06.1995", "address": "India"}}

def add_contact():

    for _ in range(0, 1):
        contact = {}
        name = input("Enter the name: ")
        number = input("Enter the number: ")
        birthday = input("Enter the birthday")
        address = input("Enter the address")


        contact["name"] = name
        contact["number"] = number
        contact["birthday"] = birthday
        contact["address"] = address
        print(contact)
        contacts.update(contact)


add_contact()
print(contacts)



def del_contact():
    user_input = input("Please enter the name of the contact you want to delete: ")
    for k in contacts:
        if user_input == contacts["name"]:
            del contacts[k]
del_contact()
print(contacts)


def edit_contact():
    user_input = input("please enter the contact you want to edit: ")
    for k, v in contacts:
        if user_input == contacts["name"]:
            contacts.update(user_input)


def list_contact():
    pass



def show_contact():
    user_input = input("please enter the contact you want to show: ")
    for k, v in contacts.items():
        if user_input == contacts["name"]:
            print(key, value)

show_contact()

【问题讨论】:

  • As a quick note, your def edit_contact() does nothing like what the function name suggests, all that will hypothetically do is create a new element within the list.

标签: python list loops dictionary for-loop


【解决方案1】:

For your def's you dont need to use a for ... in range(...) loop, rather you can just call upon that value by the value of user_value. I've decided to not include def edit_contact(): in this as it currently doesn't edit anything, all it does is add a new element within contacts with that in mind

contacts = {"Mohamed": {"name": "Mohamed Sayed", "number": "017624857447", "birthday": "24.11.1996", "address": "Ginnheim 60487"},
            "Ahmed": {"name": "Ahmed Sayed", "number": "0123456789", "birthday": "06.06.1995", "address": "India"}}

def add_contact():
    for _ in range(0, 1):
        contact = {}
        name = input("Enter the name: ")
        number = input("Enter the number: ")
        birthday = input("Enter the birthday")
        address = input("Enter the address")
        contact["name"] = name
        contact["number"] = number
        contact["birthday"] = birthday
        contact["address"] = address
        print(contact)
        contacts[name] = contact
add_contact()
print(contacts)



def del_contact(contacts):
    user_input = input("Please enter the name of the contact you want to delete: ")
    contacts = contacts.pop(user_input)
del_contact(contacts)
print(contacts)


def edit_contact():
    user_input = input("please enter the contact you want to edit: ")
    for k, v in contacts:
        if user_input == contacts["name"]:
            contacts.update(user_input)


def list_contact():
    pass

def show_contact():
    user_input = input("please enter the contact you want to show: ")
    print(contacts[user_input])
    #you can use 'contacts[user_input]['name', 'number', 'birthday' or 'address']' to call upon specific elements within the list

show_contact()

Hope this helps.

【讨论】:

    猜你喜欢
    • 2022-12-02
    • 2022-12-02
    • 2022-12-27
    • 1970-01-01
    • 2022-12-02
    • 2022-12-04
    • 2022-12-02
    • 2022-12-28
    • 2022-12-01
    相关资源
    最近更新 更多