2017-07-09 5 views
1

私はlistを- ['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は、そのサンプル私は上記の投稿したデータリストです。どのように私は上記のように希望の方法でリストを印刷できますか?

UPDATEケース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と同じです。

答えて

4

rangeを使用する必要はありません。 enumerateを使用してリストオブジェクトを直接反復し、インデックスを生成します。 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' 
+0

私の所望の出力構造に誤りがありました。私は各項目の前に 'ITEMS:'を印刷したかったのです。私は自分の投稿を更新しました。 – user2916886

+0

答えをありがとう。 '' [item1、price1]、[item2、price2] ...] 'というリストのリストを持っていれば、どのように正確に動作するのか分かり、' 1 。商品アイテム1、価格:価格1 2.アイテム2、価格2:アイテム3、価格3:アイテム4:アイテム4、価格4:その場合、forループ構造はどのように変わるでしょうか?私はその質問に追加することを知っているが、私はちょうどそれが働いていることを理解できるように頼んでいる。 – user2916886

+0

@ user2916886パル、コメントでコードを読むのは簡単ではない。代わりにあなたの質問を更新して、何度も何度も答えを変えることを避けるために、新たな前提を捨てないようにしてください。 –

関連する問題