4

私は次のリストを持っています:

[('Steve Buscemi', 'Mr. Pink'), ('Chris Penn', 'Nice Guy Eddie'), ...]

次の形式の文字列に変換する必要があります。

"(Steve Buscemi, Mr. Pink), (Chris Penn, Nice Guy Eddit), ..."

やってみた

str = ', '.join(item for item in items)

しかし、次のエラーが発生します。

TypeError: sequence item 0: expected string, tuple found

上記のフォーマットはどのように行いますか?

4

5 に答える 5

11
', '.join('(' + ', '.join(i) + ')' for i in L)

出力:

'(Steve Buscemi, Mr. Pink), (Chris Penn, Nice Guy Eddie)'
于 2012-09-18T21:27:26.503 に答える
5

あなたは近くにいます。

str = '(' + '), ('.join(', '.join(names) for names in items) + ')'

出力:

'(Steve Buscemi, Mr. Pink), (Chris Penn, Nice Guy Eddie)'

内訳:外側の括弧は個別に追加され、内側の括弧は最初の括弧によって生成され'), ('.joinます。括弧内の名前のリストは、個別の。で作成され', '.joinます。

于 2012-09-18T21:26:35.650 に答える
3
s = ', '.join( '(%s)'%(', '.join(item)) for item in items )
于 2012-09-18T21:25:24.463 に答える
1

あなたは単に使うことができます:

print str(items)[1:-1].replace("'", '') #Removes all apostrophes in the string

リストの角かっこである最初と最後の文字を省略したい。多くのコメントで述べられているように、これは文字列を一重引用符で囲みます。で削除できますreplace

注意@ovgolovinで指摘されているように、これにより、名前に含まれるアポストロフィも含め、すべてのアポストロフィが削除されます。

于 2012-09-18T21:25:03.027 に答える
0

あなたは近くにいた...

print ",".join(str(i) for i in items)

また

print str(items)[1:-1]

また

print ",".join(map(str,items))
于 2012-09-18T21:24:21.920 に答える