'How to print a list of tuples with no brackets in Python
I'm looking for a way to print elements from a tuple with no brackets.
Here is my tuple:
mytuple = [(1.0,),(25.34,),(2.4,),(7.4,)]
I converted this to a list to make it easier to work with
mylist = list(mytuple)
Then I did the following
for item in mylist:
print(item.strip())
But I get the following error
AttributeError: 'tuple' object has no attribute 'strip'
Which is strange because I thought I converted to a list?
What I expect to see as the final result is something like:
1.0,
25.34,
2.4,
7.4
or
1.0, ,23.43, ,2.4, ,7.4
Solution 1:[1]
You can do it like this as well:
mytuple = (1,2,3)
print str(mytuple)[1:-1]
Solution 2:[2]
mytuple = [(1.0,),(25.34,),(2.4,),(7.4,)]
for item in mytuple:
print(*item) # *==> unpacking
Solution 3:[3]
I iterate through the list tuples, than I iterate through the 'items' of the tuples.
my_tuple_list = [(1.0,),(25.34,),(2.4,),(7.4,)]
for a_tuple in my_tuple_list: # iterates through each tuple
for item in a_tuple: # iterates through each tuple items
print item
result:
1.0
25.34
2.4
7.4
to get exactly the result you mentioned above you can always add
print item + ','
Solution 4:[4]
One can generalize to any complex structure with use of recursion:
def flatten(o):
if not isinstance(o, (list, tuple, dict)):
return str(o)
elif isinstance(o, (list, tuple)):
return "\n".join(flatten(e) for e in o)
elif isinstance(o, (dict)):
return "\n".join(e + ": " + flatten(o[e]) for e in o)
Example:
>>> flatten((1, [21, {'a': 'aaa', 'b': 'bbb'}], 3))
'1, 21, a: aaa\nb: bbb, 3'
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Bertrand Poirot |
| Solution 2 | Smart Manoj |
| Solution 3 | Liron Lavi |
| Solution 4 | lalebarde |
