BASH“;回声-n值“;在Python2.6/2.x或Python3.x中,在一个循环中-单行,没有空格

BASH“;回声-n值“;在Python2.6/2.x或Python3.x中,在一个循环中-单行,没有空格,python,python-2.7,echo,line,pretty-print,Python,Python 2.7,Echo,Line,Pretty Print,像在BASH中一样,我可以在循环中使用“echo-n”,并在一行中打印数组(或Python中的列表)中的所有元素,而不使用任何空格“”字符。请参见下面第二个循环中的“echo-n值” 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

像在BASH中一样,我可以在循环中使用“echo-n”,并在一行中打印数组(或Python中的列表)中的所有元素,而不使用任何空格“”字符。请参见下面第二个循环中的“echo-n值”

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
在Python中,如何在迭代每个列表值时使用for循环执行相同的操作

PS:我不想使用“”。加入(列表)。另外,它看起来像是“.join(list)仅在Python中的列表具有“strings”类型的值时才起作用。”.join(list)将起作用(如BASHecho-n),但如果列表具有整数或非字符串值(例如:如下面代码中的listnumbers所示),“.join(numbers)或“.join(str(numbers))仍然不起作用(如BASHecho-n);在本例中,即使我在循环中使用了print num,,它仍然引入了空格“”字符

我试图使用打印值,(通过命令),但它引入了一个空格“”字符

在Python 2.x中,显示了以下代码:

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,
输出为:

This list contains: 
7
9
12
54
99

[7, 9, 12, 54, 99]
1233four
7 9 12 54 99
我要寻找的是,当列表具有非字符串值时,如何在单行中使用for循环和print语句打印列表编号的所有元素(如下所示)

79125499
你可以这样做:

a = [1, 2, 3, 4]

concat = ""

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

print concat
或者不使用单独的变量:

# needed if Python version 2.6+
from __future__ import print_function

a = [1, 2, 3, 4]

for i in a:
    print(i, end="")
你可以这样做:

a = [1, 2, 3, 4]

concat = ""

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

print concat
或者不使用单独的变量:

# needed if Python version 2.6+
from __future__ import print_function

a = [1, 2, 3, 4]

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

如果我没弄错的话,你是想打印没有空格的数字吗?如果是这样,请尝试以下方法

from __future__ import print_function

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

12345678910
Process finished with exit code 0

如果我没弄错的话,你是想打印没有空格的数字吗?如果是这样,请尝试以下方法

from __future__ import print_function

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

12345678910
Process finished with exit code 0

看看这个答案:@m13r Hi,如果我是对的,上面链接中的示例都没有使用带有部分/全部整数值的列表/数组,也没有一个解决了我遇到的问题,即在FOR循环中打印列表值时如何不打印“”。另外请更正。顺便说一句,虽然它可以很好地理解您在这里的意图,
echo-n
在shell脚本中实际上不是很好的形式。参见POSIX规范中的
echo
at--使用
-n
使输出完全由实现定义;写内容而不换行的合适方法是
printf“%s”content“
,或者(处理反斜杠转义)
printf“%b”content“
。看看这个答案:@m13r Hi,如果我是对的,上面链接中的示例都没有使用带有部分/全部整数值的列表/数组,也没有解决我遇到的问题,即在FOR循环中打印列表值时如何不打印“”。另外请更正。顺便说一句,虽然它可以很好地理解您在这里的意图,
echo-n
在shell脚本中实际上不是很好的形式。参见POSIX规范中的
echo
at--使用
-n
使输出完全由实现定义;不使用换行符编写内容的合适方法是
printf“%s”content“
,或者(处理反斜杠转义)
printf“%b”content“
。是的,我同意,但在Python中不需要创建额外的对象(如您建议的concat)就可以直接编写内容吗。我在解决方案中添加了第二个代码段,但没有附加变量…是的,我同意,但在Python中,不需要创建额外的对象(如您建议的concat)就可以直接使用Python。我在解决方案中添加了第二个代码段,但没有附加变量…好的,这就成功了。谢谢奇怪的是,现在我不得不接受2.x3.x版本和兼容性。在3.x中会很好,对吗?好的,这就成功了。谢谢奇怪的是,现在我不得不接受2.x3.x版本和兼容性。在3.x中会很好,对吗?