結果としてこの文字列を取得しようとしています:
"&markers=97,64&markers=45,84"
以下のPythonコードから:
markers = [(97,64),(45,84)]
result = ("&markers=%s" %x for x in markers)
return result
以下では実際の文字列が得られないため、これを行うにはどうすればよいですか?
結果としてこの文字列を取得しようとしています:
"&markers=97,64&markers=45,84"
以下のPythonコードから:
markers = [(97,64),(45,84)]
result = ("&markers=%s" %x for x in markers)
return result
以下では実際の文字列が得られないため、これを行うにはどうすればよいですか?
次のように文字列を結合する必要があります。
markers = [(97,64),(45,84)]
result = ''.join("&markers=%s" % ','.join(map(str, x)) for x in markers)
return result
アップデート
','.join(map(str, x))
最初は、各タプルを文字列に変換するセクションがありませんでした。これはさまざまな長さのタプルを処理しますが、常に正確に 2 つの数値がある場合は、下に gatto のコメントが表示されることがあります。
何が起こっているかの説明は、マーカーからタプルごとに 1 つの項目を含むリストを作成し、タプルを文字列にフォーマットするカンマ区切りの文字列に変換することです&markers=
。この文字列のリストは、空の文字列で区切られて結合されます。
map
最初の答えは期待どおりのことですが、ネストされた式を削除して、もう少し「pythonic」にします。
def join(seq, sep=','):
return sep.join(str(i) for i in seq)
result = ''.join('&markers=%s' % join(m) for m in markers)
(それが思われるようなURLの場合は、 もご覧ください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