Сделать функцию для вызова во время работы программы

Например, у меня есть программа, которая может добавлять буквы и удалять письма из списка. Вот код:

my_list = ['a', 'b', 'c', 'd', 'e', 'f'] do = input("Press 'a' to append and 'r' to remove: ") if do == 'a': letter = input("Enter a letter to append: ") my_list.append(letter) print (my_list) elif do == 'r': letter = input("Enter a letter to append: ") my_list.remove(letter) print (my_list) else: print ("Something gone wrong...") 

Чтобы удалить письмо из списка, я должен сказать программе, что я собираюсь сделать, а затем он просит меня удалить письмо. Есть ли какой-либо возможный способ вызвать мою собственную функцию (просто чтобы упростить ее использование):

 def removing(letter): my_list.remove(letter) print (my_list) 

Чтобы использовать функцию в консоли, выполните следующие действия:

 What are you going to do? removing(b) 

Вот несколько реструктурированных предложений. Он запрашивает у пользователя либо ввод

добавить что-то

или

удалить что-то

 my_list = ['a', 'b', 'c', 'd', 'e', 'f'] choices = {'remove': my_list.remove, 'append': my_list.append} print my_list while True: try: choice, item = raw_input('append <x> OR remove <x>\n').split() choices[choice](item) except (KeyError, ValueError): print('something went wrong...') print my_list 

Демо-версия:

 ['a', 'b', 'c', 'd', 'e', 'f'] append <x> OR remove <x> append z ['a', 'b', 'c', 'd', 'e', 'f', 'z'] append <x> OR remove <x> remove d ['a', 'b', 'c', 'e', 'f', 'z'] append <x> OR remove <x> remove y something went wrong... ['a', 'b', 'c', 'e', 'f', 'z'] 

Это должно дать вам идею / начать работу. Словарь легко расширяется.

Для удовольствия вы можете расширить ответ от @timgeb, чтобы сразу принять несколько аргументов.

 my_list = ['a', 'b', 'c', 'd', 'e', 'f'] choices = {'remove': my_list.remove, 'append': my_list.append} def call_choice(name, *args): for arg in args: choices[name](arg) print my_list while True: try: input_string = raw_input('append <x> OR remove <x>\n') call_choice(*input_string.split()) except (KeyError, ValueError): print('something went wrong...') print my_list 

Демо-версия:

 ['a', 'b', 'c', 'd', 'e', 'f'] append <x> OR remove <x> append abcdefg ['a', 'b', 'c', 'd', 'e', 'f', 'a', 'b', 'c', 'd', 'e', 'f', 'g'] append <x> OR remove <x> remove abc ['d', 'e', 'f', 'a', 'b', 'c', 'd', 'e', 'f', 'g'] append <x> OR remove <x> remove a ['d', 'e', 'f', 'b', 'c', 'd', 'e', 'f', 'g'] append <x> OR remove <x> remove d ['e', 'f', 'b', 'c', 'd', 'e', 'f', 'g'] append <x> OR remove <x> remove efbcdefg []