Python 2.7 从列表中创建cli数字菜单

Python 2.7 从列表中创建cli数字菜单,python-2.7,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:

我有一个列表,我想要的是一个菜单,打印出存储在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

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

使用
枚举

for i, x in enumerate(mylist):
    print '{}: {}'.format(i+1, x)
您当前的代码:

for x in mylist:
    print mylist[len(x)]
没有什么意义
x
是列表中的一个项目,
len(x)
是该项目的长度(例如
len(“/dev/sda0”)==9
),您正试图将该长度用作列表的索引。这可能会导致出现
索引器
,因为不能保证
mylist[9]
存在

我想你想做的是:

for x in range(len(mylist)):
    print mylist[x]
其中,
x
将是
mylist
的有效索引,但对于这种类型的流程,最好使用
enumerate

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

这并不重要,但我倾向于编写
enumerate(mylist,1)
。你们都是对的,但多亏了你们两位,我只能给出一个答案。旁白:那个代码似乎不起作用。您没有创建
上下文
对象,并且您有一个
设备节点
的打字错误。