web-dev-qa-db-ja.com

Python、区切りリストの印刷

これを考慮してください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
35
Mike
>>> ','.join(map(str,a))
'1,2,3'
92
ghostdog74

他の回答で提案されている_','.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 組み込み関数は非常に便利であり、覚えておく価値があります!

13
Alex Martelli

2つのオプションがあります

print(*a, sep=',')を使用して回答を直接印刷できます。これにより、セパレータが "、"として使用され、回答はとして取得されます。

1,2,3

別のオプションは、

print(','.join(str(x) for x in list(a)))

これはリストを繰り返し、(a)を印刷し、出力を次のように印刷します

1,2,3
2
Midhunlal

それが join の目的です。

','.join([str(elem) for elem in a])
2
MatrixFrog

それは非常に簡単です:

print(*a, sep=',')

Python(4つの異なる方法))でリストを印刷

幸運を。

0
Ali Asadi
print ','.join(a)