我试图让这个字符串作为结果:Python字符串
"&markers=97,64&markers=45,84"
从下面的Python代码:
markers = [(97,64),(45,84)]
result = ("&markers=%s" %x for x in markers)
return result
如何做到这一点的下方不给我的实际字符串?
我试图让这个字符串作为结果:Python字符串
"&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
UPDATE
我最初没有在那里','.join(map(str, x))
部分把每个元组转换为字符串。这可以处理不同长度的元组,但是如果你总是有2个数字,你可能会在下面看到gatto的注释。
解释发生了什么是我们用标记中的每个元组为一个元素列表,将元组转换为逗号分隔的字符串,我们将其格式化为&markers=
字符串。然后将这个字符串列表连接在一起,用空字符串分隔。
虽然第一个答案是做什么的预期,我会让它多一点“Python的”通过摆脱map
和嵌套的表达式:
def join(seq, sep=','):
return sep.join(str(i) for i in seq)
result = ''.join('&markers=%s' % join(m) for m in markers)
(如果这是对于网址喜欢它看来,你是还可以看看urllib.urlencode
)
谷歌搜索'字符串理解蟒蛇',这只是我想找的那种东西。 – Somjit 2015-11-04 14:12:14
这里还有一个办法,希望让意图最为明确指定每个值的位置明确:
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
'类型错误:没有formatting' – bereal 2013-04-30 14:24:59
字符串转换期间,所有参数就抱怨它不是一个字符串,所以我做了这也返回一个生成器对象,而不是实际的字符串result =“”.join(str((“&marker =%s”%x为标记中的x))) – Reno 2013-04-30 14:27:28
@gatto,除非元组长度可变。看到我更新的答案 – underrun 2013-04-30 14:30:11