从列表中创建cli编号菜单

时间:2014-03-25 17:50:12

标签: python-2.7

我有一个列表,我想要的是从存储在mylist中的所有分区打印的菜单。我希望它看起来像这样

1: /dev/sda0
2: /dev/sda1
3: /dev/sda2
etc....

这是我到目前为止所做的。

import pyudev

mylist = [device.devide_node for device in context.list_devices(subsystem='block', DEVTYPE='partitions')]

for x in mylist:
     print mylist[len(x)] + ': ' + mylist

我不知道如何格式化,使其看起来像上面

2 个答案:

答案 0 :(得分:1)

使用enumerate

for i, x in enumerate(mylist):
    print '{}: {}'.format(i+1, x)

答案 1 :(得分:0)

您当前的代码:

for x in mylist:
    print mylist[len(x)]

没什么意义。 x是列表中的项目,len(x)是该项的长度(例如len("/dev/sda0") == 9),并且您尝试将该长度用作索引进入清单。这可能导致IndexError,因为无法保证mylist[9]存在!

我认为你正在尝试做类似的事情:

for x in range(len(mylist)):
    print mylist[x]

其中xmylist的有效索引,但使用enumerate进行此类处理要好得多:

for num, device in enumerate(mylist, 1):
    print "{0}: {1}".format(num, device)