String formatting in Python either uses a single variable:
"Hello %s" % "World" => "Hello World"
Or a tuple of variables:
"Name: %s, age: %d" % ("Frank", 27) => "Name: Frank, age: 27" This is why you can't print out the tuple directly.
The print command uses the
repr function to show a human-readable representation of the data structure. So this:
Is equivalent to:
print "%s" % repr((1, 2))
In order to get some other representation of the tuple, such as without the brackets, you need to convert it into a string. The easiest way to do this is via the
join method:
tup = ("Hello", "World")
print ":".join(tup) => Hello:World The only problem with this is that if your tuple contains non-strings, they won't join together. So you first have to convert them, either by a generator comprehension:
tup = ("Hello", 1)
print ", ".join(str(x) for x in tup) => Hello, 1 Or via
map, which applies a function to each element:
tup = ("Hello", 1)
print ", ".join(map(str, tup)) => Hello, 1 If you want the
representation of the object, use
repr instead of
str:
tup = ("Hello", 1)
print ", ".join(map(repr, tup)) => "Hello", 1