将元组列表转换为字符串 Python
我写了一个Python函数,它会返回一个列表,比如说:
[(1,1),(2,2),(3,3)]
但是我想要的输出是一个字符串,这样我就可以把逗号换成其他字符,这样输出就会变成:
'1@1' '2@2' '3@3'
有没有简单的方法可以做到这一点呢?:) 感谢提前提供的任何建议
8 个回答
3
这段代码的意思是把一些数字组合成特定的格式,然后用空格把它们连接起来。
首先,第一行代码做的是:它创建了一个包含元组的列表,比如(1,1)、(2,2)和(3,3)。然后,它把每个元组里的两个数字转换成字符串,并用“@”符号连接起来,最后把这些连接好的字符串用空格分开。
第二行代码则是一个更通用的写法,适用于任何元组的列表。它的做法是:对每个元组里的每个数字都转换成字符串,然后用“@”符号连接这些字符串,最后再用空格把所有的结果连接在一起。
4
你可以通过使用 % 操作符结合列表推导式或生成器表达式,把元组转换成字符串,比如:
ll = [(1,1), (2,2), (3,3)]
['%d@%d' % aa for aa in ll]
这样会返回一个字符串列表,像这样:
['1@1', '2@2', '3@3']
你可以把得到的字符串列表连接起来,形成最终的输出。这篇文章介绍了六种不同的方法,并对它们的优缺点进行了分析和比较。
18
这看起来像是一个由多个tuple
(元组)组成的list
(列表),每个tuple
里有两个元素。
' '.join(['%d@%d' % (t[0],t[1]) for t in l])
当然,这个可以简化成:
' '.join(['%d@%d' % t for t in l])
甚至可以更简单:
' '.join(map(lambda t: '%d@%d' % t, l))
这里的l
就是你最开始的list
。这个操作会为列表中的每个元组生成'数字@数字'这样的组合。这些组合之间会用空格(' '
)连接起来。
当我刚开始学习Python的时候,join
的用法让我觉得有点奇怪,不过文档对我帮助很大。