1. ホーム
  2. python-2.7

[解決済み] リスト内包からのPython文字列

2022-03-04 22:55:47

質問

このような文字列を結果として取得しようとしています。

"&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= という文字列があります。この文字列のリストを、空文字列で区切って結合する。