我有一个列表,比如命名mac,它可以节省6个字节的mac地址.我想将最后一个字节设置为0,然后我使用:
mac[5] = 0
Run Code Online (Sandbox Code Playgroud)
但它给了我错误:
TypeError: 'str' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)
如何解决这个错误?
因为mac是一个str和字符串在python中是不可变的.
mac = list(mac)
mac[5] = '0'
mac = ''.join(mac) #to get mac in str
Run Code Online (Sandbox Code Playgroud)
或者使用bytearray,它可以作为一个可变的字符串.
>>> x = bytearray('abcdef')
>>> x
bytearray(b'abcdef')
>>> x[5] = '0'
>>> x
bytearray(b'abcde0')
>>> str(x)
'abcde0'
Run Code Online (Sandbox Code Playgroud)