Python中如何将二进制转换得到的十进制数字字符串转为整数列表?
将空格分隔的十进制数字字符串转换为整数列表
嘿,我明白你的需求了——你已经通过二进制转换得到了类似 "72 101 121 32 116 104 101 114 101 33" 的空格分隔十进制数字字符串,现在想把它转换成格式为 decimal=[72,101,121,32,116,104,101,114,101,33] 的整数列表对吧?这其实很容易实现,咱们分两种场景来处理:
场景1:已经得到了最终的数字字符串
假设你已经完成二进制转换,得到了存储结果的字符串变量 ascii_string,可以通过两步快速完成转换:
- 用
split()方法将字符串按空格分割成单个数字字符串的列表 - 通过列表推导式将每个字符串元素转换为整数
具体代码如下:
# 假设这是你转换后得到的十进制数字字符串 ascii_string = "72 101 121 32 116 104 101 114 101 33" # 分割字符串并转换为整数列表 decimal_str_list = ascii_string.split() decimal = [int(num_str) for num_str in decimal_str_list] # 输出你需要的格式 print(f"decimal={decimal}")
补充说明:
split()默认会按任意空白字符(包括单个空格、多个连续空格、制表符等)分割,自动忽略字符串首尾的空白,不用担心多余空格的问题- 列表推导式是Python中简洁高效的生成列表方式,比手动循环
append更优雅
场景2:整合到原二进制转换流程中
如果你不想先拼接成字符串再拆分,也可以直接在二进制转换的过程中就把整数存入列表,这样效率更高:
decimal = [] ascii_string = "" for binary_value in binary_values: an_integer = int(binary_value, 2) # 直接将整数添加到目标列表 decimal.append(an_integer) # 继续维护原有的ascii_string用于打印(如果需要的话) ascii_string += str(an_integer) + " " # 注意:原代码的len判断可能需要调整,因为每个数字加空格后长度会变化,这里做了适配 if len(ascii_string.strip()) >= 151: print(ascii_string.strip()) ascii_string = "" # 最后输出目标格式的整数列表 print(f"decimal={decimal}")
这样可以避免不必要的字符串拆分操作,一步到位得到你需要的整数列表。
内容的提问来源于stack exchange,提问作者Herni Ucet
相关产品推荐
相关产品推荐

