views:

267

answers:

5

how can i convert the following list to a string?

list1= [[1, '1', 1], [2,'2',2], [3,'3',3]]

Result: '1 1 1' '2 2 2' '3 3 3'

Thanks

+3  A: 

Looks like Python. List comprehensions make this easy:

list1= [[1, '1', 1], [2,'2',2], [3,'3',3]]
outlst = [' '.join([str(c) for c in lst]) for lst in list1]

Output:

['1 1 1', '2 2 2', '3 3 3']
Colin Burnett
There is no need in square brackets inside `join()` it could be: `' '.join(str(c) for c in lst)` or `' '.join(map(str, lst))`.
J.F. Sebastian
A: 

Could be ruby too, in which case you'd do something like:

list = [[1, '1', 1], [2,'2',2], [3,'3',3]]
list.join(' ')

which would result in "1 1 1 2 2 2 3 3 3"

cloudhead
+1  A: 

You could call join on each of the arrays. Ex:

list1= [[1, '1', 1], [2,'2',2], [3,'3',3]]

stringified_groups = []

list1.each do |group|
  stringified_groups << "'#{group.join(" ")}'"
end

result = stringified_groups.join(" ")

puts result

This loops through each of the groups. It joins the groups with a space, then wraps it in single quotes. Each of these groups are saved into an array, this helps formatting in the next step.

Like before the strings are joined with a space. Then the result is printed.

Chris Rittersdorf
I assumed this was ruby. Guess I should have read the tags.
Chris Rittersdorf
Chris, the Python tag wasn't put there by the poster. I have removed it since it, as you and cloudhead assumed, could be Ruby.
Colin Burnett
My apologies for the confusion. I added the Python tag. Thanks to Colin for removing.
Adam Bernier
A: 

here is a one liner

>>> print "'"+"' '".join(map(lambda a:' '.join(map(str, a)), list1))+"'"
'1 1 1' '2 2 2' '3 3 3'
Anurag Uniyal
A: 

ended up with this:

for a, b, c in data: print(repr(a)+' '+repr(b)+' '+repr(c))

i had to write the output to a textfile, in which the write() method could only take type str, this is where the repr() function came in handy

repr()- Input: object; Output: str

...shoulda stated I was working in Python tho...thanks for the input