我有一个列表,我想要的是从存储在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
我不知道如何格式化,使其看起来像上面
答案 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]
其中x
是mylist
的有效索引,但使用enumerate
进行此类处理要好得多:
for num, device in enumerate(mylist, 1):
print "{0}: {1}".format(num, device)