简体   繁体   中英

BASH “echo -n value” in Python 2.6/2.x or Python 3.x within a loop - single line without space

Like in BASH, I can use "echo -n" within a loop and print all elements in an array (or list in Python) in a single line without any space " " character. See the " echo -n value" below in second for loop.

Arun Sangal@pc MINGW64 ~
$ a=(1 2 33 four)

Arun Sangal@pc MINGW64 ~
$ for v in ${a[@]}; do echo $v; done
1
2
33
four

Arun Sangal@pc MINGW64 ~
$ for v in ${a[@]}; do echo -n $v; done
1233four
Arun Sangal@pc MINGW64 ~
$ for v in ${a[@]}; do echo -n "$v "; done
1 2 33 four

How can I do the same in Python using for loop while iterating each list value.

PS : I don't want to use "".join(list). Also, it seems like "".join(list) will WORK only if my list in Python has values as "strings" type then "".join(list) will work (like BASH echo -n ) but if the list has Integer aka non-string values (for ex: as shown in the list numbers in the code below), "".join(numbers) or "".join(str(numbers)) still didn't work (like BASH echo -n ); in this case, even though I used print num, in the loop, it still introduced a space " " character.

I'm trying to use print value, (with a command) but it's introducing a space " " character.

In Python 2.x, the following code is showing:

numbers  = [7, 9, 12, 54, 99] #"".join(..) will NOT work or print val, will not work here
strings  = ["1", "2", "33", "four"] #"".join(..) will work as values are strings type.

print "This list contains: "

#This will print each value in list numbers but in individual new line per iteration of the loop.
for num in numbers:
    print num

print ""
print "".join(str(numbers))
print "".join(strings)

#PS: This won't work if the values are "non-string" format as I'm still getting a space character (see output below) for each print statement for printing num value
for num in numbers:
    print num,

output as:

This list contains: 
7
9
12
54
99

[7, 9, 12, 54, 99]
1233four
7 9 12 54 99

What I'm looking for is, how can I print all elements of list numbers (as shown below) using for loop and a print statement in a single line when the list has non-string values?

79125499

You could to this:

a = [1, 2, 3, 4]

concat = ""

for i in a:
    concat = concat + str(i)

print concat

or without using a separate variable:

# needed if Python version 2.6+
from __future__ import print_function

a = [1, 2, 3, 4]

for i in a:
    print(i, end="")

If I understand you right, you are trying to print numbers without space between them? If so try the following.

from __future__ import print_function

for i in range(1, 11):
    print (i, end='')

Result

12345678910
Process finished with exit code 0

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM