How to Print without Newline or Space in Python

In Python, the print() function is used to print the object specified by the user to a standard output device. However, the print() function appends a newline at the end of the output to start on a new line. Python provides multiple ways to print the output without moving to the next line or without having space between the elements. In this blog, you will explore the multiple approaches to print without a newline or space in Python with examples. 

Table of Contents:

Methods to Print Without Newline or Space in Python

In the methods below, we will explore various ways to print without adding space or a newline in Python

Method 1: Using the end parameter with print() in Python

An end parameter is provided in Python by default. Its function is to specify whatever should be added at the end of the output that is to be printed instead of being taken to a newline character.

Example:

Python

Output:

Using the end parameter

Explanation: Here, the end parameter is used to instruct Python not to add a space or newline after printing “Intelli.” Instead, it appends whatever is specified in the end. If nothing is provided, it defaults to a newline character.

Example using space between the inverted commas:

Python

Output:

sing space between the inverted commas

Explanation: Here, the end parameter is used to create space between the words. By changing the distance between the inverted commas, we can specify the distance we want between our string.

Method 2: Using join() in Python

To combine elements into a single string( iterables like tuples or lists) without additional spaces or newlines, we can refer to the join() method. 

Example:

Python

Output:

Using join() in Python

Explanation: Here, the join() can take inputs as tuples or lists to combine them and give an output.

Method 3: Using the asterisk (*) operator in Python

We can use the asterisk operator to unpack iterable objects, but we can also use it with print() to get output without the need to manually iterate over it.

Example:

Python

Output:

 Using the asterisk

Explanation: Here, the sep=”” instruction removes the space between input elements, and there is no need to specify sep=”” as it’s predefined to remove space between the list datatype

Method 4: Using sys.stdout.write() function in Python

There is a module in Python called sys. It provides sys.stdout.write() to write the output directly to the console without adding to newline.

Example:

Python

Output:

Using sys.stdout.write()

Explanation: Here, the sys.stdout.write() attaches the second half of the word entered without adding a newline. Remember that this does not append a newline automatically.

Method 5: Using list comprehension in Python

To allow precise and perfect iteration over lists, we can use list comprehensions as a better alternative.

Example:

Python

Output:

Using list comprehension

Explanation: Here, the list comprehension iterates over numbers and prints each element without a newline. However, it is not the most readable approach.

Method 6: Using lambda and map() in Python

We use the map() and lambda functions as a programming approach to help print elements without a newline. The setback or issue with this method is that it is less readable than our traditional loops, but still more efficient for applying transformation during printing.

Example:

Python

Output:

Using lambda and map()

Explanation: Here, the map() and lambda functions iterate over the numbers and print each element without a newline. However, it is not the most readable approach. 

Best Practices for Printing Without Newline or Space in Python

  1. Choose the simplest method for readability. Using print() with the end parameter is often the best choice for most cases due to its clarity and ease of use.
  2. You can use sys.stdout.write() for performance-based critical applications. It will require explicit string handling, although it will avoid the overhead of print().
  3. Use join() when working with lists of strings. This method is reliable and avoids unnecessary space insertion, but it does require conversion if the elements are not already strings.
  4. Avoid list comprehension for printing as it creates unnecessary lists.
  5. Use the default spaces in the print() function carefully. If you use the * operator to unpack iterables, specify sep=”” to prevent unwanted spaces.
  6. Methods like sys.stdout.write() and join() are more capable of giving better output than multiple print() calls. This would largely alter the test performance of handling large-scale outputs.
  7. You also need to ensure compatibility while handling non-string data. Methods like join() require the date to be converted to strings before concatenation.
  8. We need to ensure code readability by avoiding overly difficult solutions by using map() and lambda for easy print tasks.

Performance Comparison For All The Methods

Method Execution Pros Cons
print() with end Fastest due to the minimal function call overhead Efficient and simple Limits customization
"".join() Fast because it is an optimized string operation Efficient and iterable Only operates with string
* Operator with print() Moderate because it has an unpacking overhead Flexible separator options Slower due to unpacking overhead
sys.stdout.write() Fast – writes directly to the output stream No extra spaces and also gives high performance Only works with strings
List comprehensions Slower because it creates unnecessary list objects Compact syntax Creates unnecessary lists
Lambda with map() Slowest because of an extra function call overhead due to the map() Functional programming style Extra function call overhead

Conclusion

Python, as a programming language, provides several ways to handle similar situations like these. The most common method used is the end() parameter with print(). Join () is the most useful for iterable objects, while the asterisk(*) operator unpacks the value’s output. sys.stdout.write() offers more control over output handling, while the map() function gives another alternative to the same situation. This blog has covered various methods to help you achieve the desired output based on your needs. In addition to the methods, we have added time of execution, cons, and pros for every method, giving you the freedom to compare and choose the best possible approach based on your requirements.

Further, check out our Python certification course and get ready to excel in your career with our Basic Python interview questions prepared by experts.

Printing Without Newline or Space in Python – FAQs

Q1. Why does the Python print() function give or add a newline by default?

The Python print() function appends a newline (n) for us to be able to read the output better.

Q2. How to print multiple items on the same line without spaces?

You can write the ” print(“A”, “B”, “C”, sep=””) “ code, and it will give the output as ABC using the sep parameter.

Q3. Is using sys.stdout.write() better than join()?

Although both have specific functions, sys.stdout.write() is better overall for formatting as it gives better control over output handling.

Q4. What would happen if I do not place arguments and use the print() function?

You would get a blank line. That is because the default behavior of the print() function is to append a newline character.

Q5. Should I avoid list comprehensions for printing?

Yes, it is better to use the print() statement or loops for this, but using list comprehensions can lead to unnecessary memory consumption.

About the Author

Senior Consultant Analytics & Data Science

Sahil Mattoo, a Senior Software Engineer at Eli Lilly and Company, is an accomplished professional with 14 years of experience in languages such as Java, Python, and JavaScript. Sahil has a strong foundation in system architecture, database management, and API integration. 

Full Stack Developer Course Banner