次のようなリストがあるとします。
[(10, 20), (50, 60), (100, 110)]
これを次のようにするにはどうすればよいですか。
'10-20,50-60,100-110'
リスト内のペアの数が可変の場合?
こんな簡単な質問ですみません。しかし、「、」を「-」に置き換えるなど、私が試みたすべてのことは失敗しました。何か案は?
次のようなリストがあるとします。
[(10, 20), (50, 60), (100, 110)]
これを次のようにするにはどうすればよいですか。
'10-20,50-60,100-110'
リスト内のペアの数が可変の場合?
こんな簡単な質問ですみません。しかし、「、」を「-」に置き換えるなど、私が試みたすべてのことは失敗しました。何か案は?
>>> x = [(10, 20), (50, 60), (100, 110)]
>>> ','.join('-'.join(map(str, t)) for t in x)
'10-20,50-60,100-110'
このフォーマットを行う別の(やや読みやすい)方法は、次のいずれかを使用することです。
A)%スタイルの文字列フォーマット:
data = [(10, 20), (50, 60), (100, 110)]
fmt = "%d-%d, %d-%d, %d-%d" % (data[0][0], data[0][1], data[1][0], data[1][1],...)
または、リスト内包表記を使用する場合:
fmt = ",".join("%d-%d" % i for i in data)
B)pythonstring.format
メソッド:
fmt = ",".join("{0}-{1}".format(*i) for i in data)
これはあなたが探しているものですか?
data = [(10, 20), (50, 60), (100, 110)]
for x in data:
print x[0], "-", x[1]
内包表記内で反復しながら、リストの値をアンパックできます。
>>> x = [(10, 20), (50, 60), (100, 110)]
>>> ','.join('%d-%d' % (y,z) for (y,z) in x)
'10-20,50-60,100-110'