1

次のようなリストがあるとします。

[(10, 20), (50, 60), (100, 110)]

これを次のようにするにはどうすればよいですか。

'10-20,50-60,100-110'

リスト内のペアの数が可変の場合?

こんな簡単な質問ですみません。しかし、「、」を「-」に置き換えるなど、私が試みたすべてのことは失敗しました。何か案は?

4

4 に答える 4

5
>>> x = [(10, 20), (50, 60), (100, 110)]
>>> ','.join('-'.join(map(str, t)) for t in x)
'10-20,50-60,100-110'
于 2012-04-28T01:47:19.397 に答える
2

このフォーマットを行う別の(やや読みやすい)方法は、次のいずれかを使用することです。

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)
于 2012-04-28T02:00:02.983 に答える
1

これはあなたが探しているものですか?

data = [(10, 20), (50, 60), (100, 110)]
for x in data:
    print x[0], "-", x[1]
于 2012-04-28T01:45:19.243 に答える
0

内包表記内で反復しながら、リストの値をアンパックできます。

>>> x = [(10, 20), (50, 60), (100, 110)]
>>> ','.join('%d-%d' % (y,z) for (y,z) in x)
'10-20,50-60,100-110'
于 2012-04-28T02:25:47.457 に答える