:以下のPythonコードからPython文字列は、私は、結果として、この文字列を取得しようとしています
"&markers=97,64&markers=45,84"
:
markers = [(97,64),(45,84)]
result = ("&markers=%s" %x for x in markers)
return result
はどのようにして得られない以下のようにこれを行うのですか私は実際の文字列ですか?
:以下のPythonコードからPython文字列は、私は、結果として、この文字列を取得しようとしています
"&markers=97,64&markers=45,84"
:
markers = [(97,64),(45,84)]
result = ("&markers=%s" %x for x in markers)
return result
はどのようにして得られない以下のようにこれを行うのですか私は実際の文字列ですか?
あなたはこのようなあなたの文字列に参加する必要があります:私は、最初は文字列に各タプルをオンにするそこに','.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つの項目でリストを作成することです。この文字列のリストは、空の文字列で区切られて結合されます。
最初の答えは予想何やっている間、私は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のだ場合は、また)
グーグル '文字列理解python'、これはちょうど私が探していたもののものだった。 – Somjit
をurllib.urlencode
を見てみることができますすることはここでうまくいけば意図明示的に自分の価値観のそれぞれの場所を指定することによって、最も明確になり、別のアプローチです:
markers = [(97,64),(45,84)]
print ''.join('&markers=%s,%s' % pair for pair in markers)
は、最後のコンマ
結果=「」
for i in a:
result+='&markers'
for j in i:
result += str(j) + ','
result = result[:len(result)-1]
return result
'TypeError例外を除いそれに追加する空の文字列を作成してみてください: – bereal
formatting'文字列中に変換すべての引数は、それは私がやったように、それは文字列を波平訴えませんタプルの長さが可変でない限り、実際の文字列result = "" .join(str( "&マーカー=%s"%x for x in marker))) – Reno
@gattoではなく、ジェネレータオブジェクトを返します。私の更新された答えを参照してください – underrun