10

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

2
  • print('.'.join(map(str, deints))) Commented May 22, 2016 at 17:31
  • 1
    Possible duplicate of Converting a list to a string Commented May 22, 2016 at 17:35

6 Answers 6

14

You can do it with:

print('.'.join(str(x) for x in deints))
Sign up to request clarification or add additional context in comments.

1 Comment

Thank you. Even though it is for python 2 I understood what I need to add to make it run in python 3
6

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.

2 Comments

Can you explain please
@Raja, this just concatenates all the elements inserting a period as a separator. You also need to convert each number to a string first.
5

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.

4 Comments

I'm not the down voter, but the problem here is that you need to '.'.join
Ah, right. But the abstraction should have been possible. It's funny, first time I answered this kind of question I got positive reputation ...
I need an integer not again in string. I have found what I need. Thank you
@Raja: The list is unaltered. map applies the call to str to the list and gives back the changed result (an iterable with strings) which is then used by join.
2

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'

Comments

1

Just a non-join solution.

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

Comments

0

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

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.