如何在Python中将列表中的整数转换为字符串

13

我想将从0到9的整数转换为字符串。我可以通过手动转换每个数字来实现,就像这样:

str(1) = a
str(2) = b

一直到9的所有数字。然而,这很慢,代码看起来也不是很pythonic。我希望看到一个更快速的编码解决方案,例如将所有这些数字放入一个列表中,然后将列表中的每个元素转换为字符串。我知道要创建该列表应该这样做:

a = range(0,10)

然而,我不知道如何将列表中的整数转换为字符串。提前感谢您的帮助。


那么每个数字将对应一个字母,比如 1 = a2 = b - Beginner
有点儿。如果你写 str(在这里写入你的整数),你的整数将从int数据类型切换到str数据类型。我只是将属于str类型的那个数字分配给一个名为a或b的变量,或者无论你想叫它什么,只要你遵循命名规则,这样我可以在程序中稍后使用它。 - chilliefiber
@初学者 - no. a,b等都是变量。(你可以看出来,因为它们没有引号,也不是数字) 所以它们代表某些东西。在这种情况下,我们从标题中假设它们代表整数。str()函数将变量强制转换为字符串表示形式 - 它的样子取决于变量类型,但对于整数,它只是十进制表示法,呈现为字符串。请注意,在大多数语言中,1 != "1"。(尝试评估"1"+"1") - Jon Kiparsky
6个回答

26
你可以使用map()str()应用于数组中的每个值:
a = map(str, range(0, 10))

2
如果你想要一个列表,你必须将map()函数传递给list()函数。例如:list(map(f, a)) - renan-eccel

24

使用列表推导式:

[str(i) for i in range(10)]

或者使用生成器表达式 - 它是惰性的:(str(I) for I in range (10))。列表推导式是急切的。 - user1277476

6
你可以使用 map 函数。
a = range(0,10)
print(list(map(str,a))) # <- python 3
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

a = xrange(0,10)
print(map(str,a)) # <- python 2
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

谢谢,如果能用Python 2和3解释一下就更好了。天哪,在Python 3中情况更糟。而且,你不需要使用xrange,可以直接使用range。 - chilliefiber
@pedromatias,在Python3中,range是一个迭代器,但在Python2中不是,因此在Python2中使用xrange更好。 - Padraic Cunningham

0
如果您需要将整数列表转换为字符串列表,可以这样做:
a = range(0,10)
print "'" + "','".join((map(str,a))) + "'"
'0','1','2','3','4','5','6','7','8','9'

print type("'" + "','".join((map(str,a))) + "'")
<type 'str'>

这在编程中非常有用,特别是当你需要将许多整数类型作为字符串类型查询到一个单独的数据库中时。

0

这里是另一个答案:

a = map(chr, range(48, 58))
print a
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

这是chr的文档字符串,解释了我做了什么:
Docstring:
chr(i) -> character

Return a string of one character with ordinal i; 0 <= i < 256

如果你只是调用 chr(48),你会得到 '0',chr(49)='1',以此类推...

0
n = [0,1,2,3,4]
n = map(str,n)
n = list(n)
print(n)

Output:
n = ['0','1','2','3','4']

请添加一些解释 - mousetail
这个答案与上面发布的任何其他答案没有区别。 - ARAT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接