Skip to main content
 首页 » 编程设计

python之如何将字符串添加到列表中

2025年05月04日14kuangbin

所以我试图将二进制字符串添加到列表中,但我添加的是每个单独的字符。我是 python 的新手,所以我不太确定自己该怎么做(另外,在获取字符串时,我需要忽略每个二进制字符串之间的空格)

str_msg = "This is a message!" 
final = ' '.join(format(ord(x), 'b') for x in str_msg) 
print(final) 

给出:

1010100 1101000 1101001 1110011 100000 1101001 1110011 100000 1100001 100000 1101101 1100101 1110011 1110011 1100001 1100111 1100101 100001

但我随后尝试以这种方式创建列表:

binlist = [] 
for value in final: 
    binlist.append(value) 
print(binlist) 

我得到:

['1', '0', '1', '0', '1', '0', '0', ' ', '1', '1', '0', '1', '0', '0', '0', ' ', '1', '1', '0', '1', '0', '0', '1', ' ', '1', '1', '1', '0', '0', '1', '1', ' ', '1', '0', '0', '0', '0', '0', ' ', '1', '1', '0', '1', '0', '0', '1', ' ', '1', '1', '1', '0', '0', '1', '1', ' ', '1', '0', '0', '0', '0', '0', ' ', '1', '1', '0', '0', '0', '0', '1', ' ', '1', '0', '0', '0', '0', '0', ' ', '1', '1', '0', '1', '1', '0', '1', ' ', '1', '1', '0', '0', '1', '0', '1', ' ', '1', '1', '1', '0', '0', '1', '1', ' ', '1', '1', '1', '0', '0', '1', '1', ' ', '1', '1', '0', '0', '0', '0', '1', ' ', '1', '1', '0', '0', '1', '1', '1', ' ', '1', '1', '0', '0', '1', '0', '1', ' ', '1', '0', '0', '0', '0', '1']

请您参考如下方法:

表达式:

' '.join(format(ord(x), 'b') for x in str_msg) 

使用生成器表达式生成字符串中的每个字符:str_msg 转换为其 ASCII 值,以二进制表示,然后传递给 .join 方法字符串 ' '(一个空格)。结果,您将获得该字符串的二进制表示的以空格分隔的字符串。

听上去,您需要一个包含每个字符的二进制表示的字符串列表。

这可以通过列表理解来实现,它具有与生成器表达式相同的语法,但使用方括号:

[format(ord(x), 'b') for x in str_msg]