打印越来越多的数字以及python

时间:2017-07-09 21:44:19

标签: python list

我在list - python中有一个['item1','item2','item3','item4']。我试图按照以下方式打印此列表 - 1. ITEMS: item1 2. ITEMS: item2 3. ITEMS: item3 4. ITEMS: item4。我写了这段代码,但这是错误的,因为我试图以错误的方式指定range()

list_semi = ["%d. ITEMS: %s" % (x for x in range(1,len(bookings)),items) for items in bookings]
print('Your items are {}.'.format(','.join(list_semi)))
上面代码中的

bookings是我在上面发布的样本数据的列表。如上所述,我如何以所需的方式打印列表?

更新案例2 如果我的示例输入列表更改为 - [[item1,price1],[item2,price2]...]并且我希望示例输出为1. ITEMS: item1, PRICE: price1 2. ITEMS: item2, PRICE: price2 3. ITEMS: item3, PRICE: price3 4. ITEMS: item4, PRICE: price4,那么我应该如何构建代码?列表名称与bookings

相同

1 个答案:

答案 0 :(得分:4)

无需使用range。直接迭代列表对象,使用enumerate生成索引。将start参数指定为1:

>>> ' '.join(['{}. ITEMS: {}'.format(i, x) for i, x in enumerate(lst, 1)])
'1. ITEMS: item1 2. ITEMS: item2 3. ITEMS: item3 4. ITEMS: item4'

<强>更新

>>> lst = [['item1','price1'],['item2','price2']]
>>> ' '.join(['{}. ITEMS: {}, PRICE: {}'.format(i, *x) for i, x in enumerate(lst, 1)])
'1. ITEMS: item1, PRICE: price1 2. ITEMS: item2, PRICE: price2'