在python中有没有执行以下操作的内容?或者我必须自己实施吗?
array = [0, 1, 2]
myString = SOME_FUNCTION_THAT_TAKES_AN_ARRAY_AS_INPUT(array)
print myString
打印
(0, 1, 2)
由于
答案 0 :(得分:5)
你很幸运,Python完全有这个功能。它被称为join
。
print "(" + ", ".join(array) + ")"
如果您熟悉PHP,join
与implode
类似。上面的", "
是元素分隔符,可以用任何字符串替换。例如,
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)
中您可能会将哪种类型的数据称为“数组”,则可以为推荐解决方案提供更好的基础。