【问题标题】:Converting a list into a specific string with Python使用 Python 将列表转换为特定字符串
【发布时间】:2014-07-25 03:39:40
【问题描述】:

我有这段代码...:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    或避免重新发明 URL 编码轮并改用 urllib.urlencode() function

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

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

    演示:

    >>> 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)。

    【讨论】:

    • 非常感谢。我不知道 urlencode。它刚刚好。
    猜你喜欢
    • 2013-05-25
    • 2015-04-14
    • 2016-11-09
    • 1970-01-01
    • 2023-03-16
    • 2017-11-15
    • 2020-01-30
    • 1970-01-01
    • 2014-08-06
    相关资源
    最近更新 更多