Raja G
Raja G

Reputation: 6633

convert list into string in python3

Right now I am having a list

>>> deints
[10, 10, 10, 50]

I want to print it as 10.10.10.50. I made it as

Method 1

>>> print(str(deints[0])+'.'+str(deints[1])+'.'+str(deints[2])+'.'+str(deints[3]))
10.10.10.50

Are there any other ways we can acheivie this ?

Thank you

Upvotes: 10

Views: 68051

Answers (6)

Vincent Pribish
Vincent Pribish

Reputation: 51

Convert them into strings, then join them. Try using:

".".join([str(x) for x in x])

Upvotes: 0

Keiwan
Keiwan

Reputation: 8251

You can do it with:

print('.'.join(str(x) for x in deints))

Upvotes: 13

Stefan Pochmann
Stefan Pochmann

Reputation: 28606

Just a non-join solution.

>>> print(*deints, sep='.')
10.10.10.50

Upvotes: 1

C14L
C14L

Reputation: 12558

Obviously str.join() is the shortest way

'.'.join(map(str, deints))

or if you dislike map() use a list comprehension

'.'.join([str(x) for x in deints])

you could also do it manually, using * to convert the deints list into a series of function arguments

'{}.{}.{}.{}'.format(*deints)

or use functools.reduce and a lambda function

reduce(lambda y, z: '{}.{}'.format(y, z), x)

All return

'10.10.10.50'

Upvotes: 2

ForceBru
ForceBru

Reputation: 44838

This is very simple. Take a look at str.join

print '.'.join([str(a) for a in deints])

Citation from the docs:

str.join(iterable)

Return a string which is the concatenation of the strings in the iterable iterable. The separator between elements is the string providing this method.

Upvotes: 6

Matthias
Matthias

Reputation: 13222

You can use the join method on strings and have to convert the data in the list to strings first.

>>> '.'.join(map(str, deints))
'10.10.10.50'

join takes the string as a delimiter and concatenates the content of the list with this delimiter between each element.

Upvotes: 5

Related Questions