Python基础知识:如何将包含int的列表转换为普通的int?

时间:2012-01-31 22:31:53

标签: python

为什么这不是给我“3”而是“[3]”?

a = [3]
print "".join(str(a))

6 个答案:

答案 0 :(得分:8)

因为您在整个列表中调用了to string函数

尝试:

a = [3]
print "".join([str(v) for v in a])

在阅读问题的标题后,您只是尝试从列表中获取单个整数,或者您是否要将整数列表转换为“更大”的整数,例如:

a = [3, 2]
print "".join([str(v) for v in a]) ## This gives a string and not integer
>>> "32"

答案 1 :(得分:4)

你正在数组上使用str()。 string convert [3] to“[3]”。你可能正在寻找

"".join(str(i) for i in a)

答案 2 :(得分:3)

也许只是通过索引取消引用:

print a[0]

或者:

for item in a:
    print item

答案 3 :(得分:2)

因为str(a)为您提供了列表的字符串表示,即“[3]”。

尝试

"".join([str(elem) for elem in a])

在加入之前将整数列表转换为字符串列表。

答案 4 :(得分:1)

这会产生预期的行为:

"".join([str(x) for x in a])

答案 5 :(得分:0)

传入生成器表达式以加入而不是列表解析:

"".join(str(x) for x in a)

如果你的列表只包含数字,你可以使用repr(),因为那是str()的目的:

"".join(repr(x) for x in a)

如果您使用python 2.X,则可以使用反引号作为repr()的快捷方式。但这在3.X中不可用:

"".join(`x` for x in a)