在Python中打印多个列表
嘿,我写了一个Python代码(版本是2.7.3),里面用了多个列表。但是当我试着打印这些列表的时候,它们总是会有一个空格。我想把列表打印得连在一起,但我做不到。我有一个列表是整数值,另一个是字符。
比如:列表1(整数列表包含123)和列表2(字符列表包含ABC)。
我想要的输出是:ABC123
但我得到的是:ABC 123
我做了什么:
print "".join(list2),int("".join(str(x) for x in list1))
有没有建议我哪里做错了?
5 个回答
-1
print
在输出时会自动在逗号之间加一个空格。
你可以使用新的打印函数:
from __future__ import print_function
print("".join(list2),int("".join(str(x) for x in list1)), sep="")
详细信息可以查看 文档。
注意:这个函数通常不是内置的,因为
print()
函数,你需要在模块的顶部加上这个未来声明。
0
这里的 ,
是在添加空格,因为你在打印两个东西,一个是字符串 'ABC',另一个是整数 123。你可以试试用 +
,它可以直接把两个字符串连在一起,这样你就能打印出 'ABC123' 了。
>>> list1=[1,2,3]
>>> list2=['A','B','C']
>>> print "".join(list2),int("".join(str(x) for x in list1))
ABC 123
>>> print "".join(list2)+"".join(str(x) for x in list1)
ABC123
1
这个空格是因为 print
这个语句的原因。它会在用逗号分隔的项目之间自动加一个空格。我想你不需要把连接起来的字符串转成整数,然后你可以用 join
把字符串连接起来,最后一起打印出来。
print "".join(list2)+"".join(str(x) for x in list1)
另外,你也可以换成 Python 3 的 print
函数,使用它的 sep
变量来控制分隔符。
from __future__ import print_function
letters=['A','B','C']
nums=[1,2,3]
print("".join(letters),int("".join(str(x) for x in nums)), sep="")
3
l = ["A","B","C"]
l2 = [1,2,3]
print "".join(l+map(str,l2))
ABC123
map
这个函数会把所有的int
(整数)转换成str
(字符串),这就跟你用[str(x) for x in l2]
这样的写法是一样的。
0
试着在打印的时候把你想要的两个列表连接起来。用“+”代替“,”。这里用'int'会出错,因为你只能连接字符串。所以试试这个:
print "".join(list2)"".join(str(x) for x in list1)