19. PikaStdData 数据结构

PikaStdData 数据结构库提供了 List (列表),Dict(字典)数据结构。

19.1. 安装

  1. 在 requestment.txt 中加入 PikaStdLib 的依赖,PikaStdLib 的版本号应当与内核的版本号相同。
  1. PikaStdLib==v1.6.1
  1. 运行 pikaPackage.exe

19.2. 导入

在 main.py 中加入

  1. #main.py
  2. import PikaStdData

19.3. class List():

List 类提供了 List 列表功能,由 List 类创建对象,即可创建一个列表。 如:

  1. import PikaStdData
  2. list = PikaStdData.List()

19.3.1. List 类的方法

  1. # add an arg after the end of list
  2. def append(self, arg: any):
  3. pass
  4. # get an arg by the index
  5. def get(self, i: int) -> any:
  6. pass
  7. # set an arg by the index
  8. def set(self, i: int, arg: any):
  9. pass
  10. # get the length of list
  11. def len(self) -> int:
  12. pass

注意,set() 方法的索引不能够超出 List 的长度,如果要添加列表的成员,需要使用 append()方法。

19.3.2. 使用 ‘[]‘ 中括号索引列表

List 对象可以使用 ‘[]‘ 进行索引。list[1] = a等效于 list.set(1, a)a = list[1]等效于a = list.get(1)

19.3.3. 使用 for 循环遍历 List

List 对象支持 for 循环遍历 例:

  1. import PikaStdData
  2. list = PikaStdData.List()
  3. list.append(1)
  4. list.append('eee')
  5. list.append(23.44)
  6. for item in list:
  7. print(item)

19.4. class Dict():

Dict 类提供了 Dict 字典功能,由 Dict 类创建对象,即可创建一个字典。 如:

  1. import PikaStdData
  2. dict = PikaStdData.Dict()

19.4.1. Dict 类的方法

  1. # get an arg by the key
  2. def get(self, key: str) -> any:
  3. pass
  4. # set an arg by the key
  5. def set(self, key: str, arg: any):
  6. pass
  7. # remove an arg by the key
  8. def remove(self, key: str):
  9. pass

19.4.2. 使用 ‘[]‘ 中括号索引字典

Dict 对象可以使用 ‘[]‘ 进行索引。dict['x'] = a等效于 dict.set('x', a)a = dict['x']等效于a = dict.get('x')

19.4.3. 使用 for 循环遍历 Dict

Dict 对象支持 for 循环遍历 例:

  1. import PikaStdData
  2. dict = PikaStdData.Dict()
  3. dict['a'] = 1
  4. dict['b'] = 'eee'
  5. dict['c'] = 23.44
  6. for item in dict:
  7. print(item)

19.5. class ByteArray(List)

[注意]: PikaStdData 的版本至少需要 v1.5.3

ByteArray 类提供了 ByteArray 字节数组功能,由 ByteArray 类创建对象,即可创建一个字节数组。

如:

  1. import PikaStdData
  2. bytes = PikaStdData.ByteArray()

ByteArray 类继承自 List 类,可以使用 List 类的方法。

19.5.1. ByteArray 类的方法

  1. # convert a string to ByteArray
  2. def fromString(self, s:str):
  3. pass

用例:

  1. >>> bytes = PikaStdData.ByteArray()
  2. >>> bytes.fromString('test')
  3. >>> for byte in bytes:
  4. ... print(byte)
  5. ...
  6. 116
  7. 101
  8. 115
  9. 116
  10. >>> bytes.append(0xff)
  11. >>> bytes.append(0x0f)
  12. >>> print(bytes[4])
  13. 255
  14. >>> print(bytes[5])
  15. 15