python中数组的字符串表示

时间:2009-12-13 04:26:49

标签: python

在python中有没有执行以下操作的内容?或者我必须自己实施吗?

array = [0, 1, 2]
myString = SOME_FUNCTION_THAT_TAKES_AN_ARRAY_AS_INPUT(array)
print myString

打印

(0, 1, 2)

由于

4 个答案:

答案 0 :(得分:5)

你很幸运,Python完全有这个功能。它被称为join

print "(" + ", ".join(array) + ")"

如果您熟悉PHP,joinimplode类似。上面的", "是元素分隔符,可以用任何字符串替换。例如,

print "123".join(['a','b','c'])

将打印

a123b123c

答案 1 :(得分:5)

def SOME_FUNCTION_THAT_TAKES_AN_ARRAY_AS_INPUT (arr):
    return str(tuple(arr))

如果需要,请将str替换为unicode

答案 2 :(得分:4)

SOME_FUNCTION_THAT_TAKES_AN_ARRAY_AS_INPUT = tuple  

答案 3 :(得分:2)

如果您的数组项是特定整数,@ jboxer的答案中建议的str(tuple(array))将起作用。对于大多数其他类型的项目,可能会出现问题,因为str(tuple(...))使用repr str - 这确实需要作为默认行为(否则{{1}使用诸如字符串print之类的项目的元组会非常混乱,看起来就像一个包含两个int项'1, 2'1的字符串! - ),但它可能是也可能不是你想要的。例如:

2

对于浮点数,>>> array = [0.1, 0.2] >>> print str(tuple(array)) (0.10000000000000001, 0.20000000000000001) 在大多数情况下会发出比有意义更多的数字(而repr,如果直接在数字上调用,则表现得更好一些)。因此,如果您的商品可能是str s(以及float s,这不需要预防但不会受到这一点的影响;-),您可能最好: / p>

int

但是,如前所述,如果某些项目是字符串,这可能会产生不明确的输出!

如果您知道在>>> print '(%s)' % (', '.join(str(x) for x in array)) (0.1, 0.2) 中您可能会将哪种类型的数据称为“数组”,则可以为推荐解决方案提供更好的基础。