2013-04-30 12 views

答えて

22

あなたはこのようなあなたの文字列に参加する必要があります:私は、最初は文字列に各タプルをオンにするそこに','.join(map(str, x))セクションを持っていなかった

markers = [(97,64),(45,84)] 
result = ''.join("&markers=%s" % ','.join(map(str, x)) for x in markers) 
return result 

UPDATE

。これはさまざまな長さのタプルを扱いますが、常に正確に2つの数字がある場合は、下にgattoのコメントが表示されることがあります。

何が起きているかの説明は、タプルをカンマ区切りの文字列に変換して&markers=文字列にフォーマットするマーカーからの各タプルについて1つの項目でリストを作成することです。この文字列のリストは、空の文字列で区切られて結合されます。

+0

'TypeError例外を除いそれに追加する空の文字列を作成してみてください: – bereal

+0

formatting'文字列中に変換すべての引数は、それは私がやったように、それは文字列を波平訴えませんタプルの長さが可変でない限り、実際の文字列result = "" .join(str( "&マーカー=%s"%x for x in marker))) – Reno

+0

@gattoではなく、ジェネレータオブジェクトを返します。私の更新された答えを参照してください – underrun

7

最初の答えは予想何やっている間、私はmapと、ネストされた表現を取り除くことで、それはもう少し「神託」作ると思います:

def join(seq, sep=','): 
    return sep.join(str(i) for i in seq) 

result = ''.join('&markers=%s' % join(m) for m in markers) 

(それはそうのようにそれはURLのだ場合は、また)

+0

グーグル '文字列理解python'、これはちょうど私が探していたもののものだった。 – Somjit

2

urllib.urlencodeを見てみることができますすることはここでうまくいけば意図明示的に自分の価値観のそれぞれの場所を指定することによって、最も明確になり、別のアプローチです:

markers = [(97,64),(45,84)] 
print ''.join('&markers=%s,%s' % pair for pair in markers) 
0

は、最後のコンマ

結果=「」

for i in a: 
    result+='&markers' 
    for j in i: 
    result += str(j) + ',' 
result = result[:len(result)-1] 

return result 
関連する問題