如何在python中为列表项填充空字符?

2024-09-30 05:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

这里是Python新手。我有以下清单:

['G1X1.000Y-3.000', 'G2X-1.000Y-3.000I-1.000J-2.291', 'G1X-1.000Y0.000', 'F0']

我想用ASCII null“\0”填充每个字符串列表项,以使每个字符串长度为32个字符或字节(我有一个嵌入式应用程序运行在微控制器上,通过串行通信接收32字节长的字符串)

我尝试了以下想法,认为它会起作用,但当我再次打印列表时,似乎没有任何变化

#Format each command to a 32 character long string
for i in fileContents:
    length = len(i)
    print(length)
    spacesToAdd = (32 - length)
    i += ''*spacesToAdd

print(fileContents)

我希望在第一个列表项中看到类似的内容:

['G1X1.000Y-3.000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',]

但是,print语句未显示任何更改:

['G1X1.000Y-3.000', 'G2X-1.000Y-3.000I-1.000J-2.291', 'G1X-1.000Y0.000', 'F0']

Tags: 字符串列表字节asciinulllengthprint新手
1条回答
网友
1楼 · 发布于 2024-09-30 05:22:26

使用ljust方法

for i, s in enumerate(fileContents):
    fileContents[i] = s.ljust(32, '\0')

在代码中,i只是对字符串的引用,而不是对“slot”的引用,因此您不会修改列表。您需要将新的str对象直接分配给列表槽

相关问题 更多 >

    热门问题