在寫接近 C 的想法時,會想要在 Python 使用想是 C 的 array of char
之前一直為這個問題困擾很久,因為我只會用 Python string XD
看了點攻略,其實有這個可以用
於是乎就可以爽爽的用可變長度的 array of char in python 啦~
In [18]: a = bytearray(b'\x41\x42\x43\x44') # create 'ABCD' in array of bytes In [19]: a Out[19]: bytearray(b'ABCD') In [20]: a.lower() # to lowercase Out[20]: bytearray(b'abcd') In [21]: a[0] = 0x45 # assign values just like char[] in C language In [22]: a Out[22]: bytearray(b'EBCD') In [23]: a.decode('ascii') # get a string in ASCII Out[23]: 'EBCD' In [24]: a.append(ord('F')) # variable length In [25]: a Out[25]: bytearray(b'EBCDF')
很棒的是,基本上 string 的方法都可以用
In [27]: bytearray.
bytearray.append bytearray.isalnum bytearray.mro bytearray.split
bytearray.capitalize bytearray.isalpha bytearray.partition bytearray.splitlines
bytearray.center bytearray.isdigit bytearray.pop bytearray.startswith
bytearray.count bytearray.islower bytearray.remove bytearray.strip
bytearray.decode bytearray.isspace bytearray.replace bytearray.swapcase
bytearray.endswith bytearray.istitle bytearray.reverse bytearray.title
bytearray.expandtabs bytearray.isupper bytearray.rfind bytearray.translate
bytearray.extend bytearray.join bytearray.rindex bytearray.upper
bytearray.find bytearray.ljust bytearray.rjust bytearray.zfill
bytearray.fromhex bytearray.lower bytearray.rpartition
bytearray.index bytearray.lstrip bytearray.rsplit
bytearray.insert bytearray.maketrans bytearray.rstrip
Ref. https://www.inkling.com/read/learning-python-mark-lutz-4th/chapter-36/using-3-0-and-2-6-bytearray
No comments:
Post a Comment