显示编号列表

Display numbered list

我的最后一个问题已解决,但我现在还需要打印更多内容。我下面的代码当前打印以下内容。

输入

# Add task to list
def add(todo, x, y):
    todo[x] = y

# View task
def view2(x):
    for key, val in x.items():
        print("{0} - {1}".format(key, val))

if sel == '1': #add task
            name = input("Please provide a task name: ")
            prio = input("Please select prioty level (High | Medium | Low): ")
            add(todo, name, prio)
            exit

elif sel == '3': #print todo list
            view2(todo)
            exit

输出

test 1 - high 
test 2 - med 
test 3 - low 

但我需要以下输出

1 - test 1 - high 
2 - test 2 - med 
3 - test 3 - low 

下一段代码将获取列表项的编号并从列表中删除该项目,这就是为什么我需要如上所示的编号列表。

提前致谢!

这可能像

# View task
def view2(x):
    n_order = 0
    for key, val in x.items():
        n_order += 1
        print("{0} - {1} - {2}".format(n_order, key, val))

从列表中删除项目

这是通过选择 sel 作为 2 来完成的。

  1. 将任务编号转换为索引
  2. 验证任务索引有效
  3. 使用 del
  4. 按索引从列表中删除项目
def remove(todo, number):
    index = number - 1
    if not(0 < index < len(todo)):
        print('Invalid task number')
    else:
        del todo[index]

查看任务列表

Enumerate 超过 todo_list,这会让你们都知道当前任务索引及其值:

# View task
def view2(todo_list):
    for index, todo in enumerate(todo_list, start=1):
        for key in todo.keys():
            print(f'{index} - {key} - {todo[key]}')

完整代码

# Add task to list
def add(todo, x, y):
    todo[x] = y

def remove(todo, number):
    index = number - 1
    if not(0 < index < len(todo)):
        print('Invalid task number')
    else:
        del todo[index]

# View task
def view2(todo_list):
    for index, todo in enumerate(todo_list, start=1):
        for key in todo.keys():
            print(f'{index} - {key} - {todo[key]}')

todo = [{'test 1': 'high'}, {'test 2': 'med'}, {'test 3': 'low'}]


while True:
    sel = input("Please enter command (1=Add, 2=Delete, 3=View): \n")

    if sel == '1': #add task
                name = input("Please provide a task name: ")
                prio = input("Please select prioty level (High | Medium | Low): ")
                add(todo, name, prio)

    elif sel == '2':
        number = int(input("Please provide a task number: "))
        remove(todo, number)

    elif sel == '3': #print todo list
                view2(todo)
    else:
        break

输出:

Please enter command (1=Add, 2=Delete, 3=View): 
3
1 - test 1 - high
2 - test 2 - med
3 - test 3 - low
Please enter command (1=Add, 2=Delete, 3=View): 
2
Please provide a task number: 2
Please enter command (1=Add, 2=Delete, 3=View): 
3
1 - test 1 - high
2 - test 3 - low