使用Python将列表转换为特定字符串

时间:2014-06-04 13:04:04

标签: python string list python-2.7 type-conversion

我有这段代码......:

c_ids = [2323,4343,534]
ids = " &drags[][id]=".join(str(x) for x in c_ids)

print ids 
# 2323 &drags[][id]=4343 &drags[][id]=534

如何进行打印:

&drags[][id]=2323 &drags[][id]=4343 &drags[][id]=534

1 个答案:

答案 0 :(得分:0)

我将忽略你在这里添加空格的事实;这可能不是你想要的,但很容易从输出中删除。

格式化每个元素并使用空字符串连接:

''.join(' &drags[][id]={}'.format(x) for x in c_ids)

或者避免重新发明网址编码轮并改为使用urllib.urlencode() function

'&' + urllib.urlencode({'drags[][id]': c_ids}, doseq=True)

doseq标志允许将列表值转换为结果查询字符串中的单独元素; id中的每个c_ids都是单独编码的。

演示:

>>> import urllib
>>> c_ids = [2323,4343,534]
>>> '&' + urllib.urlencode({'drags[][id]': c_ids}, doseq=True)
'&drags%5B%5D%5Bid%5D=2323&drags%5B%5D%5Bid%5D=4343&drags%5B%5D%5Bid%5D=534'

方括号的编码在这里是完全正确的;任何兼容的Web服务器都会再次解码它们(包括PHP和Ruby-on-Rails)。