将整数列表转换为字符串

Posted

技术标签:

【中文标题】将整数列表转换为字符串【英文标题】:Convert a list of integers to string 【发布时间】:2015-01-14 18:04:24 【问题描述】:

我想将我的整数列表转换为字符串。以下是我创建整数列表的方法:

new = [0] * 6
for i in range(6):
    new[i] = random.randint(0,10)

像这样:

new == [1,2,3,4,5,6]
output == '123456'

【问题讨论】:

new = [ random.randint(0,10) for i in range(6) ] 会更简单。 【参考方案1】:

有了Convert a list of characters into a string,你就可以做到

''.join(map(str,new))

【讨论】:

或者对于map-averse,''.join([str(x) for x in new]) 甚至''.join(str(random.randint(0, 10)) for i in range(10))【参考方案2】:

肯定有一种更巧妙的方法可以做到这一点,但这里有一个非常直接的方法:

mystring = ""

for digit in new:
    mystring += str(digit)

【讨论】:

【参考方案3】:

两种简单的方法

"".join(map(str, A))
"".join([str(a) for a in A])

【讨论】:

【参考方案4】:

有点晚了,并以某种方式扩展了问题,但您可以利用 array 模块并使用:

from array import array

array('B', new).tobytes()

b'\n\t\x05\x00\x06\x05'

实际上,它会从您的整数列表中创建一个 1 字节宽的整数数组(参数 'B')。然后该数组被转换为二进制数据结构的字符串,因此输出看起来不像您期望的那样(您可以使用decode() 修复这一点)。然而,它应该是最快的整数到字符串转换方法之一,它应该可以节省一些内存。另请参阅文档和相关问题:

https://www.python.org/doc/essays/list2str/

https://docs.python.org/3/library/array.html#module-array

Converting integer to string in Python?

【讨论】:

也许只有 python 3?在 python 2 中我无法使用 tobytes。【参考方案5】:

如果你不喜欢map():

new = [1, 2, 3, 4, 5, 6]

output = "".join(str(i) for i in new)
# '123456'

请记住,str.join() 接受 iterable,因此无需将参数转换为 list

【讨论】:

【参考方案6】:

您可以在转换为字符串类型并附加到“字符串”变量时遍历列表中的整数。

for int in list:
    string += str(int)

【讨论】:

完全不同 有什么办法,能不能帮帮我。 @Cherry 你的代码完全一样,改变量名不会让代码不一样 另外,这是非常糟糕的做法。永远不要使用保留名称作为变量名。 @WhatsThePoint 不一样,只是你看不到

以上是关于将整数列表转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

将整数列表转换为 Python 中的预定义字符串列表

Flutter:将整数列表转换为一行中的字符串列表

将数组/字符串列表转换为数组/整数列表的 Lambda 表达式

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

将整数列表转换为字节/ASCII字符串并返回?快速地?

将包含字符串和 NAN 的列转换为 Pandas 中的整数列表