これを考慮してくださいPythonカンマ区切り値のリストを印刷するためのコード
for element in list:
print element + ",",
element
がリストの最後の要素である場合にコンマが表示されないように印刷するための好ましい方法は何ですか。
ex
a = [1, 2, 3]
for element in a
print str(element) +",",
output
1,2,3,
desired
1,2,3
>>> ','.join(map(str,a))
'1,2,3'
他の回答で提案されている_','.join
_は、典型的なPythonソリューション;これまでのところどの回答にも見られない普通のアプローチです。
_print ','.join(str(x) for x in a)
_
ジェネレータ式またはgenexpとして知られています。
ループを好む場合(または、たとえば、各アイテムに印刷するだけでなく他の目的のためにループが必要な場合)、もちろん優れた代替手段もあります。
_for i, x in enumerate(a):
if i: print ',' + str(x),
else: print str(x),
_
これは初めてのスイッチで(リストやその他の反復可能なaに対して機能します)、最初のコンマの前にコンマを配置します。前回の切り替えはわずかにエレガントではなく、len()
を持つイテレート可能オブジェクトでのみ機能します(完全に一般的なものではありません):
_for i, x in enumerate(a):
if i == len(a) - 1: print str(x)
else: print str(x) + ',',
_
この例では、最後のアイテムを印刷しているときに行を終了するために最後のスイッチを利用しています。
enumerate 組み込み関数は非常に便利であり、覚えておく価値があります!
2つのオプションがあります
print(*a, sep=',')
を使用して回答を直接印刷できます。これにより、セパレータが "、"として使用され、回答はとして取得されます。
1,2,3
別のオプションは、
print(','.join(str(x) for x in list(a)))
これはリストを繰り返し、(a)を印刷し、出力を次のように印刷します
1,2,3
それが join
の目的です。
','.join([str(elem) for elem in a])
print ','.join(a)