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
6 Answers 6
You can do it with:
print('.'.join(str(x) for x in deints))
1 Comment
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.
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
'.'.joinmap applies the call to str to the list and gives back the changed result (an iterable with strings) which is then used by join.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
Just a non-join solution.
>>> print(*deints, sep='.')
10.10.10.50
Comments
Convert them into strings, then join them. Try using:
".".join([str(x) for x in x])
print('.'.join(map(str, deints)))