Python では、明示的なループなしでカスタム形式でリストを印刷するエレガントな方法はありますか? 質問する

Python では、明示的なループなしでカスタム形式でリストを印刷するエレガントな方法はありますか? 質問する

君ならできるって分かってる

print str(myList)

取得するため

[1, 2, 3]

そしてあなたはできる

i = 0
for entry in myList:
  print str(i) + ":", entry
  i += 1

取得するため

0: 1  
1: 2  
2: 3    

しかし、最初と似た方法で最後と似た結果を得る方法はあるのでしょうか?

私の Python に関する限られた知識 (およびドキュメントからのいくらかの助け) で、最善のものは次のとおりです。

print '\n'.join([str(n) + ": " + str(entry) for (n, entry) in zip(range(0,len(myList)), myList)])

冗長性はそれほど減りませんが、少なくとも 1 つの (複合) ステートメントでカスタム文字列を取得できます。もっと良い方法はありますか?

ベストアンサー1

>>> lst = [1, 2, 3]
>>> print('\n'.join('{}: {}'.format(*k) for k in enumerate(lst)))
0: 1
1: 2
2: 3

注: リストの内包表記やジェネレータ式の反復処理を理解するだけで十分です明示的なループ。

おすすめ記事