Python:如何将值设置为列表元素

Tie*_*Dad 0 python

我有一个列表,比如命名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)

如何解决这个错误?

thk*_*ang 7

因为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)